10 Java语言基础 - 控制语句

创建时间:2023-01-09 16:15
长度:3641
浏览:0
评论:0

控制语句分类

选择语句

   if

   switch

循环语句

   for

   while

   do...while

转向语句

   break

   continue

返回语句

   return

if语句详解

   先列出4种不同形式的if语句


第一种:只要小括号中的布尔表达式为true,那么就会执行大括号里的代码,反之不执行

if (布尔表达式) {
  // Java 语句
  // Java 语句
  // ...
}

第二种:只要小括号中的布尔表达式为true,那么就会执行if大括号里的代码, 反之会执行else里的代码

if (布尔表达式) {
  // Java 语句
  // Java 语句
  // ...
} else {
  // Java 语句
  // Java 语句
  // ...
}

第三种:可以有多个else if,如果布尔表达式1满足了,执行第一个大括号里的代码;如果布尔表达式2满足了,执行第二个大括号里的代码,以此类推;当条件满足后,不会再判断当前if语句的其它分支;

if (布尔表达式1) {
  // Java 语句
  // Java 语句
  // ...
} else if (布尔表达式2) {
  // Java 语句
  // Java 语句
  // ...
} else if (布尔表达式3) {
  // Java 语句
  // Java 语句
  // ...
}

第四种:第三种的延伸,最后多了个else分支,如果前面都不满足,则会执行else的代码

if (布尔表达式1) {
  // Java 语句
  // Java 语句
  // ...
} else if (布尔表达式2) {
  // Java 语句
  // Java 语句
  // ...
} else if (布尔表达式3) {
  // Java 语句
  // Java 语句
  // ...
} else {
  // Java 语句
  // Java 语句
  // ...
}

第五种:只有一条Java语句时,可以省略大括号

if (true) System.out.println("huangcy.com 博客学习");


switch详解

比较完成的switch格式

switch(int或String类型或变量) {
  case 配置int或String类型或变量:
    java语句;
    ...
     break;
  case 配置int或String类型或变量:
     java语句;
     ...
     break;
   default:
    java语句;
    ...
}

switch执行原理:

   switch后面的小括号中的“数据/变量”执照case后面的“数据”进行匹配,匹配成功的分支匹配;按照自上而下的顺序;

   匹配成功的分支执行,匹配成功分支有break时,整个switch语句终止;没有的话会进入下一个分支执行,这种现象称为“穿透”;

   所有分支都匹配不成功时,执行default分支

注意:虽然switch小括号里只能是int或switch类型,但是byte,char,short也可以写到switch和case后面,它们会自动类型转换,jdk7之前不行,之后都可以


case合并

switch(i){
    case 1:
    case 3:
    case 5:
        java语句
        ....
        break;
    case 6:
        ...
        break;
}

switch例子

    int num = 3;
    switch (num) {
      case 1:
        System.out.println("星期一");
        break;
      case 2:
        System.out.println("星期二");
        break;
      case 3:
        System.out.println("星期三");
        break;
      case 4:
        System.out.println("星期四");
        break;
      case 5:
        System.out.println("星期五");
        break;
      case 6:
        System.out.println("星期六");
        break;
      case 7:
        System.out.println("星期日");
        break;
      default:
        System.out.println("非法!");
    }


for循环

   什么是?

       在指定条件下重复执行的代码

   何时?

       需要重复执行一段代码时

   格式:

for(初始表达式; 布尔表达式; 更新表达式) {
    // 需要重复执行的代码块(也叫做:循环体)
}


for 循环执行过程/原理

   初始化表达式、布尔表达式、更新表达式都可以不写,但是两个分号是必须的;for (; ;){}

   初始化表达式最先执行,并且在整个for循环中只执行一次

   布尔表达式必须是true/false,不能是其它值

   循环过程:

       - 判断布尔表达式,表达式为true时,执行循环体,然后执行更新表达式,继续判断布尔表达式的值,以此类推,直到布尔表达式为false;如果布尔表达式为false, 循环结束;


99乘法表例子

   for (int i = 1; i <=9; i++) {
      for (int j = 1; j <=i; j++) {
        System.out.print(i + "*" + j + "=" + (i * j) + "  ");
      }
      System.out.println();
    }


while循环

格式:

while(布尔表达式) {
    循环体
} 

执行过程/原理:

   先判断布尔表达式,如果为true,执行循环体,执行完循环体继续判断布尔表达式,直至遇到false,while循环结束

例子

   int num1 = 10;
   int num2 = 20;

   while (num1 < num2) {
     System.out.println(num1);
     num1++;
   }


do...while循环

格式:

do {
    // 循环体
} while (布尔表达式);

执行过程/原理:

   先执行循环体一次,然后再判断布尔表达式是否为true,为true继续执行循环体,然后再继续执行布尔表达式....直至布尔表达式为false,循环体结束;注意:不管布尔表达式是ture或false时,do...while语句至少执行一次循环体。

例子:

do {
    System.out.println("我至少执行一次");
} while (5 < 3);

// 例2
int num = 0;
do {
    System.out.println(num);
    num++;
} while (num <= 10);


break

break可以用在switch、for、do...while、while语句中,用来控制循环的终止

何时?

   当循环中达到某个目的/条件后,后续的循环就没必要再继续了,此时就可以使用break退出整个循环


例子:当循环到5时就结束整个循环

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break;
    }
    System.out.println(i); // 0 1 2 3 4
}


退出指定的for循环,给for循环起名字

parent:for (int i = 0; i < 10; i++) {
    child:for (int j = 0; j < 10; j++) {
        if (i == 5) {
            break parent;
        }
        System.out.println(i); 
    }
}


continue

主要出现在循环语句中,用来控制循环跳过本次循环,继续下一个循环的

例子:

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        continue;
    }
    System.out.println(i); // 0 1 2 3 4 6 7 8 9 10
}

注意:continue也可以指定for循环命名跳出

评论(共0条)