十四、流程控制语句

来源:互联网 发布:windows 2012 r2 编辑:程序博客网 时间:2024/05/18 12:04

1、if嵌套
这里写图片描述

public class HelloWorld {
public static void main(String[] args) {
int score = 94;
String sex = “女”;
if(score>80){
if(sex==”女”){
System.out.println(“进入女子组决赛”);
}else{
System.out.println(“进入男子组决赛”);
}
}else{
System.out.println(“没有进入决赛”);
}
}
}
运行结果为: 进入女子组决赛
2、switch
<1>switch 后面小括号中表达式的值必须是整型或字符型

<2>case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2

<3>case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束.
<4>可以把功能相同的 case 语句合并起来,如

case1:case2:System.out.println("abc");

<5> default 块可以出现在任意位置,也可以省略

public class HelloWorld {    public static void main(String[] args) {        char today='日';        switch(today){            case '一':            case '三':            case'五':                 System.out.println("早餐吃包子");break;            case '二':            case '四':            case '六':                 System.out.println("早餐吃油条");break;            case '日':                System.out.println("吃主席套餐");        }    }}

如果

char today='日';        switch(today){           case '日':                System.out.println("吃主席套餐");//后面没有加break,则会继续执行下面            case '一':            case '三':            case'五':                 System.out.println("早餐吃包子");break;            case '二':            case '四':            case '六':                 System.out.println("早餐吃油条");        }

运行结果:吃主席套餐
早餐吃包子
3、while :
while(判断条件){
循环操作
}
执行过程:

< 1 >、 判断 while 后面的条件是否成立( true / false )

< 2 >、 当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止

特点:先判断,后执行
例子:顺序输出1–5这5个数字

    int i = 1; // 代表 1 - 5 之间的数字        while (i<=5) {            System.out.println(i);            i++;        }

4、do…while
do{
循环操作
}while(判断操作);
执行过程:

<1>、 先执行一遍循环操作,然后判断循环条件是否成立

<2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止

特点: 先执行,后判断

由此可见,do…while 语句保证循环至少被执行一次!
5、for循环
for(循环变量初始化;循环条件;循环变量变化){
循环操作;
}
1、 for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。

a. 省略“循环变量初始化”,可以在 for 语句之前由赋值语句进行变量初始化操作,如:
int i=0;for(;i<10;i++){System.out.println("HelloWorld");}

b. 省略“循环条件”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象,如:

for(int i=0;;i++){System.out.println("HelloWorld");}在编程过程中要避免“死循环”的出现,因此,对于上面的代码可以在循环体中使用 break 强制跳出循环。

c. 省略“循环变量变化”,可以在循环体中进行循环变量的变化,如:

for(int i=1,j=5;i<5;i++,j--){System.out.println(i+"+"+j+"="+(i+j));}

输出:1+5=6
2+4=6
3+3=6
4+2=6
5+1=6
3、 循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级,如:

for(int i=1;i<10&&i!=5;i++)
int sum = 0; // 保存不能被3整除的数之和    // 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环    for (int i = 1;i<=100;i++ ) {        if (i % 3 != 0) {             sum = sum + i; // 累加求和        }    }    System.out.println("1到100之间不能被3整除的数之和为:" + sum);    运行结果为: 1到100之间不能被3整除的数之和为:3367

6、break
break 语句退出指定的循环,直接执行循环后面的代码。

int sum=0;            for(int i=1;i<=10;i++)            {             sum=sum+i;              if(sum>20){                 System.out.println("当前累加值为"+sum);break;}           }

运行结果为: 当前的累加值为:21
7、continue 的作用是跳过循环体中剩余的语句执行下一次循环。

 int sum=0;    for(int i=1;i<=10;i++){        if(i%2!=0){            continue;        }else        sum=sum+i;    }        System.out.print("1到10之间的所有偶数的和为:" + sum);

运行结果为: 1到10之间的所有偶数的和为:30
8、多重循环
System.out.println(“打印直角三角形”);
for (int i = 1;i<=3;i++) {
for (int j = 1;j<=i;j++) {
System.out.print(“*”);
}
System.out.println();
}

9、练习

    int num = 999;        int count = 0;        do{            count++;            num=num/10;        }while(num>0);        System.out.println("它是一个"+count+"位数");

或者

int num = 999;        int count = 0;        for(;;){            count++;            num = num / 10;            if(num == 0)                break;        }        System.out.println("它是个"+count+"位的数!");

都是输出:它是个3位的数

原创粉丝点击