if-else 、while、 do-while 、for、 return、 break、 continue、 foreach、 switch

if-else

  1. public class IfElse {
  2. static int result = 0;
  3. static int test(int a,int b){
  4. if (a<b){
  5. result = 1;
  6. }else if (a>b){
  7. result = -1;
  8. }else {
  9. result = 0;
  10. }
  11. return result;
  12. }
  13. public static void main(String[] args) {
  14. System.out.println(test(5,2));
  15. }
  16. }
  1. public class IfElse1 {
  2. static int test(int a, int b){
  3. if (a<b){
  4. return 1;
  5. }else if (a>b){
  6. return -1;
  7. }else {
  8. return 0;
  9. }
  10. }
  11. public static void main(String[] args) {
  12. System.out.println(test(5,5));
  13. }
  14. }
  1. public class IfElse2 {
  2. static int result = 0;
  3. static void test(int a ,int b){
  4. if (a<b){
  5. result = 1;
  6. }else if (a>b){
  7. result = -1;
  8. }else {
  9. result = 0;
  10. }
  11. }
  12. public static void main(String[] args) {
  13. test(7,9);
  14. System.out.println(result);
  15. }
  16. }

while

先判断后循环,判断为false跳出循环

  1. public class While {
  2. static boolean test() {
  3. //Math.random 随机生成一个大于0小于1的随机数
  4. boolean result = Math.random() < 0.5; //将result通过<0.5,定义成Boolean类型,
  5. System.out.print(result + ","); //将结果打印出来,便于理解true --while循环继续
  6. return result;
  7. }
  8. public static void main(String[] args) {
  9. while (test()) {
  10. System.out.println("我在while循环中");
  11. }
  12. System.out.println("我退出了while循环");
  13. }
  14. }

do-while

先循环或判断,至少会执行一次,即使表达式第一次就被计算为false

  1. public class DoWhile {
  2. static boolean condition(){
  3. boolean rand = Math.random()<0.9;
  4. System.out.print(rand);
  5. return rand;
  6. }
  7. public static void main(String[] args) {
  8. do {
  9. System.out.println(" 至少执行一次");
  10. }while (condition());
  11. }
  12. }
  1. public class DoWhileAndWhile {
  2. public static void main(String[] args) {
  3. //do while
  4. int a=2;
  5. do {
  6. System.out.println("你好");
  7. a++;
  8. }while(a<4);
  9. }
  10. }//结果有两次“你好”
  11. class test{
  12. //while
  13. public static void main(String[] args) {
  14. int a =0;
  15. while (a<2){
  16. System.out.println(a);
  17. a++;
  18. }
  19. }
  20. }//结果是0和1

for循环

执行顺序
1,初始化表达式执行,仅执行一次
2,执行boolean表达式进行判断,如果结果为true,执行第3步,如果结果为false,退出循环
3,执行循环体
4,执行步进表达式
5,执行第2步,循环往复……

for (int i = 0; i < 5; i++) {
System.out.println(“for循环体 “ + i); //循环体
}

foreach语法

java中一种更加简洁的for语法用于数组容器,表示不必创建int变量而去遍历数组

  1. public class ForEachFloat {
  2. public static void main(String[] args) {
  3. Random rand = new Random(47);
  4. float[] f = new float[10];
  5. //对于数组来说,foreach编译之后就是or循环
  6. for (int i =0;i<10;i++)
  7. f[i] = rand.nextFloat(); //nextFloat生成序列中下一个随机的float类型数,介于0.0到1.0
  8. for (float x:f) //定义一个float类型的x,并且将f中每个元素赋值给x
  9. System.out.println(x);
  10. }
  11. }

String类中有一个方法toCharArray(),它会返回一个char()数组,因此可以用来遍历字符串

  1. public class ForEachString {
  2. public static void main(String[] args) {
  3. String str = "love me like you do";
  4. char[] charArray = str.toCharArray();
  5. // for (char x :charArray){
  6. // System.out.print(x+" ");
  7. // }
  8. int len = charArray.length;
  9. for (int i =0;i<len;i++){
  10. System.out.print(charArray[i]+" ");
  11. }
  12. }
  13. }

return

方法中并不是必须要有return语句,但是一个方法必须要有返回值(viod方法中没有return语句,它有一个隐式的return)
return关键字的用法可以去看上文中ifelse的例子

break和continue

break用于强行退出循环,不执行循环中剩余的语句
continue则停止当前执行的迭代,然后退回循环开始处,开始下一次迭代

  1. public class Break {
  2. public static void main(String[] args) {
  3. int[] arrayOfInts = {32, 87, 3, 589, 12, 1076, 12,2000, 8, 622, 127};
  4. int searchFor = 12;
  5. boolean flag = false;
  6. int i = 0; //定义索引
  7. for ( i =0; i<arrayOfInts.length; i++){
  8. if (arrayOfInts[i] == searchFor){
  9. flag = true;
  10. break;
  11. }
  12. }
  13. if (flag){
  14. print("在索引为"+i+"处找到了"+searchFor);
  15. }else {
  16. print("未找到"+searchFor);
  17. }
  18. }
  19. }
  1. public class Continue {
  2. //用continue方法统计字符串中的某个字符个数
  3. public static void main(String[] args) {
  4. String searchMe = "peter piper picked a peck of pickled peppers";
  5. int length =searchMe.length();
  6. int numP = 0;
  7. boolean flag = false;
  8. for (int i = 0; i<length; i++){
  9. if (searchMe.charAt(i)=='p'){ //charAt是返回指定索引处的char值,第一个char从索引0处开始
  10. flag = true;
  11. numP++;
  12. continue; //这里可加可不加
  13. }
  14. }
  15. if (flag){
  16. System.out.println(numP);
  17. }else {
  18. System.out.println("数组中未找到");
  19. }
  20. }

switch

  1. public class Demos {
  2. public static void main(String[] agrs) {
  3. int a = 9;
  4. switch (a) {
  5. case 1:
  6. System.out.println("1!");
  7. case 2:
  8. System.out.println("2!");
  9. case 3:
  10. System.out.println("3!");
  11. default:
  12. System.out.println("Default!");
  13. }
  14. }
  15. }
  16. 输出:
  17. Default!

default语句如果在所有case后面使用,则可以不用break语句

default语句如果在部分case之前,或在所有case之前,则建议在其语句中加如break语句。
否则,执行完default语句后,会从上往下顺序执行case语句,直到遇到break语句,
如果一直遇不到break语句,则执行完default下方所有的case语句

  1. public Shape next(){
  2. switch (rand.nextInt(3)){
  3. default:
  4. case 0: return new Circle();
  5. case 1: return new Square();
  6. case 2: return new Triangle();
  7. /* default:
  8. System.out.println("默认");
  9. return null;*/
  10. }
  11. }