第二章(3)、java基础语法-选择语句和循环语句

       上一节讲述了java的运算符,本节开始讲述选择语句和循环语句。

一、顺序结构

        顺序机构是程序最基本的流程结构,程序会按照先后顺序来执行,写在前面的代码先执行,写在后面的代码后执行,顺序结构还是比较简单的,顺序结构图如下。

        

二、选择结构

        选择结构也称之为分支结构,在程序中可以有选择性的执行程序,例如:在登录操作中,如果登录成功则执行A代码,如果登录失败则执行B代码,A代码和B代码不能同时执行。

        1)if语句

              if语句有三种格式:

                    1、if(关系表达式){

                               语句; 

                          }

                    代码如下:

                    

                

                    2、if(关系表达式){

                              语句;

                          }else{

                              语句;

                          }

                    代码如下:

                    

                    

                    3、if(关系表达式1) {

                               语句1;

                          }else  if (关系表达式2) {

                               语句2;

                          }

                                …(n个else if)

                      else {

                           语句n+1;

                      }

                代码如下:

  

            if语句的执行流程:关系表达式的结果类型是布尔(boolean)类型首先判断关系表达式看其结果是true还是false。如果某个表达式的结果是true,则就会执行里面的语句,如        果结果都不是true,则会执行else里的语句。

   2)switch语句

            

                switch(表达式) {

                    case 1

                          语句1;

                      break;

                   case 2

                          语句2;

                      break;

                  …

                  default 

                      语句n+1;

                     break;

                }

        格式解读:switch也是一种选择结构,表达式的取值有:byte、short、int、char、枚举enum(JDK5后可以使用)、String(JDK7后可以使用),case后面的值要和表达式中    的值进行比较,如果某个case后面的值跟表达式相等,则执行这个case里面的语句,break表示结束,例如,值1 跟表达式相等,会执行后面的语句,但是执行完里面的语句后如果没有break,则会继续往下执行后面的语句,为了避免这种情况要使用break,switch也是为了选择性执行程序,所以使用break结束该switch语句。如果case后面的值跟表达式不相等,则执行default里的语句,类似if语句中的else(default可以省略)。代码如下:

不加入break,代码如下:

        代码解读:case 3是满足switch中的表达式的,应该执行case 3后面的语句,执行完后switch就该结束,但是没有加入break,则会继续往下执行case中的语句,所以使用switch语句要注意break的使用。

三、for循环

格式:for(初始化语句;条件判断语句;条件控制语句){

                语句体;

           }

代码如下:

代码解读:

            1)首先执行初始化语句(int i = 0)

            2)接着执行条件判断语句(i < 10),得到的结果是布尔(boolean)类型的值,结果是false的话,循环结束,如果结果是true的话,执行循环里的语句体(System.out.println("hello java");)

            3)执行完循环里的语句体后,然后执行条件控制语句(i++),接着回到 2),直到条件判断语句的结果为false时,循环结束。

for循环结构图:

有时候可能会使用到for循环里还会有循环,这种情况叫做循环的嵌套,使用循环嵌套打印九九乘法表,代码如下:

结果如下:

代码解读:外层的的for循环控制着行数,里面层的for循环控制着列数,例如:当i等于1时,满足了条件判断语句(i <= 9),接着往下执行里面层的for循环,代码中可以看到,里层循环的次数是i次,可以看出i等于多少的时候就有多少列,当里面层条件判断语句结果为false时,则会继续执行外层循环,直至外层循环的条件判断语句结果为false时,九九乘法表打印完毕。

四、while循环

格式:while (条件判断语句) {

                语句体;

                条件控制语句;

            }

代码示例:

        从以上代码看出 while循环 和 for循环 好像没有什么区别,其实它们之间是有区别的,主要区别:当明确要循环的次数时,可以使用for循环也可以使用while循环,但是当循环次数不明确时,使用while循环,因为for循环是知道循环次数的。还有一个区别就是,如果循环结束后还要继续使用该变量(i),则使用while循环,因为for循环中的变量(i)只能在for里面使用。

五、do...while循环

格式:do {

                语句体;

                条件控制语句;

            } while (条件判断语句)

        do...while循环跟for循环和while循环有一点区别,for循环和while循环,当开始执行的时候,如果条件判断语句的结果就是false,那么for循环和while循环里的语句体就一次都不会执行,但是do...while是先执行了一次语句体,然后再去执行条件判断语句,如果结果是true,则再继续执行语句体,反之循环结束。总的来说就是,for循环和while循环里的语句体可能一次都不会执行,do...while至少执行一次语句体。

        以上三种循环都有可能造成死循环(一直执行循环里的语句体),当条件语句的结果一直是true的话就会造成,例如:for(;;),while(true),do...while(true).

六、break

        break表示中断,这个关键字之前在switch(选择结构)语句中出现过,作用是结束switch语句,程序继续往下执行,在循环结构中一样也可以使用,作用也是结束循环语句。单独去使用break是没有意义的。break可以跳出单层循环,也可以跳出多层循环(循环嵌套)。

1)跳出单层循环

不使用break时,代码如下:

使用break时,代码如下:

代码解释:当没有使用break语句时,一直循环到条件判断语句的结果是false时,才结束循环,而使用break时,当 i==5 时满足了我们的需求,就用break结束了循环,循环里的语句体不在执行。

2)跳出多层循环

        跳出多层循环就要带有标签,标签名也要符合java的规范。代码如下:

七、continue

        continue表示继续,跳出本次循环,继续进行下一次的循环 ,不在循环中使用continue也是没有意义的。代码如下:

        从以上代码的结果中并没有打印5,正是因为当 i==5 时,当次的循环跳出去了,当次循环里的语句体也不会执行,继续去执行下一次循环。跟break不同,不让break是结束了整个循环,而continue只是跳过了当次的循环,继续往后执行循环。

八、return

        return表示返回,它的作用不是结束循环,而是结束了整个方法。代码如下:

       从以上代码的结果中并没有打印 "程序结束!!!",正是因为当 i==5时,使用了return语句,整个main方法已经结束了,在这个return后面的代码就不在执行。注意:在跟return同个作用域(同个{})里,return后面是不能跟代码的。

公众号二维码

猜你喜欢

转载自blog.csdn.net/itmzz/article/details/86517489