当前位置: 代码迷 >> 综合 >> day7-控制语句
  详细解决方案

day7-控制语句

热度:81   发布时间:2024-01-09 20:46:52.0

java控制语句可以分为7种:

控制选择结构:if ; if... else

                          switch 

控制循环结构:for 

                        while 

                        do...while()

控制循环结构:continue 

                         break

1.控住语句if结构:

if语句又称为分支语句/条件控制语句:

if语句4种的编写方式:

1.if(布尔表达式){

        java语句;
        java语句;

}

2.if(布尔表达式){

         java语句;

}else{

        java语句;

}

3.if(布尔表达式){

        java语句;

}else if(布尔表达式){

        java语句;

}else if(布尔表达式){

        java语句;

}

4.if(布尔表达式){

        java语句;

}else if(布尔表达式){

        java语句;

}else if(布尔表达式){

        java语句;

}else{

        java语句;

}

注意:带有else的语句(2,4种)一定会有语句执行,一旦执行一个分支,if语句就会结束。    

           嵌套使用的时候,一定要保证代码方式的完美。[缩进的时候必须缩进]。

           if语句的分支中只有一条java语句的话,大括号可以忽略不写。   

特殊错例:

        if(true)System.out.println("true");System.out.println("hh");elseSystem.out.println("hh");

上述第错误原因:第四行缺少if,前三行都可以编译通过,1,2行为if+单独语句,3行为单独的语句,所以第四行缺少单独的else缺少if

2.控制语句switch:

switch语句属于选择结构,也是分支语句

完整的switch语句的编写方法: 

        switch(int / string 类型的字面值或者变量){
               case int / string 类型的字面值或者变量:
                        java语句;
                        ...
                        break

               case int / string 类型的字面值或者变量:
                        java语句;
                        ...
                        break     
                default:
                        java语句;
}

case穿透现象,如果单独的case中没有break,会直接执行下一个case。

在遇到break之后会switch语句会结束。

原理1.switch小括号后边的数据和case后边的数据一一匹配,匹配成功的分支执行,按照自上而下的顺序一次匹配。

            2.匹配成功的分支执行,分支当中有break语句的话,整个switch语句终止。

            3.匹配成功的分支执行后,如果没有break,会直接进入下一个case而不进行匹配。(穿                   透现象)。避免穿透现象加入break。

            4.所有分支都没有执行的话,会进行default语句的执行

            5.switch后边和case后边也可以直接写到int和string类型的数据,不能探测其他类型。

                *byte,short,char可以直接直接写到switch和case后面,因为它们可以进行自动类型转换,转换成int类型。

            6.case可以合并:

                int i = 10; 

                switch(i){

                        case1:case2:case3       

}

穿透现象详解:

public class partSwitch {public static void main(String[] args) {java.util.Scanner s = new java.util.Scanner(System.in);System.out.println("请输入星期几");int num = s.nextInt();switch (num){case 1:System.out.println("今天是星期1");break;case 2:System.out.println("今天是星期2");case 3:System.out.println("今天是星期3");break;case 4:System.out.println("今天是星期4");break;case 5:System.out.println("今天是星期5");break;case 6:System.out.println("今天是星期6");break;case 7:System.out.println("今天是星期7");break;default:System.out.println("您输入的字符非法");}}
}

字符串switch的用法:

        char degree = 'A';switch (degree){case 'A':System.out.println("这是A等级");break;case 'B':System.out.println("这是b等级");break;case 'C':System.out.println("这是c等级");break;default:System.out.println("输入的有误");

注意:switch后边只能是int或者string,不要加入别的条件。

3.循环for语句

在程序当中有一些需要反复/重复的执行的代码,假设没有循环结构,那么这段需要重复执行的代码自然需要重复编写,代码无法得到重复使用。把反复需要执行的代码片段放到循环体内,再联合计数器,共同控制这段需要反复运行的代码。

所有的编程语言都支持三种循环方式: 

*for循环
*while循环
*do...while循环

语法结构:for(初始化表达式;布尔表达式;更新表达式){

                        需要重复执行的代码【循环体,由java语句实现】

}

for循环的执行原理:

初始化表达式,布尔表达式,更新表达式都不是必须的【但是两个分号是必须的】

初始化表达式最先执行,并且该表达式只执行一次。

布尔表达式必须是true 或者 false ,不能是其他值

for 的执行过程: 

                先执行初始化表达式,并且该表达式只执行一次

                判断布尔表达式的结果是true 还是false 

                布尔表达式结果为true:

                                执行循环体

                                执行更新表达式

                                判断布尔表达式的结果是true还是false

                                        执行循环体......

                布尔表达式结果为false: 

                                停止程序 for循环结束 

public class partFro {public static void main(String[] args) {for( int i =0;i<10;i++){System.out.println("this is time"+ i);}// System.out.println(i);   ---> 此处无法访问i变量}
}

注意:循环体中的“i”只能在循环体中使用,除了循环体相当于出了作用域,将会无法访问。

        for(int i = 0; i <10;){i++;System.out.println(i);}for(int i = 0;  i < 10; ){System.out.println(i);i++;

9*9 乘法表源代码

public class partFro {public static void main(String[] args) {for(int i  = 1; i<= 9 ; i++){for(int j = 1; j<= i ;j ++ ){System.out.print(i + "*" + j + "=" + i*j);System.out.print("  ");}System.out.print('\n');}}
}

4.循环while语句:

while循环句的语法结构:

while(布尔表达式true){

        循环体(java语句)

}

while循环的执行原理:

        先判断布尔表达式的结果:

                *true
                        执行循环体
                *true
                        执行循环体
                *false
                        结束

while 循环体可能执行的次数可能为0次

public class partWhile {public static void main(String[] args) {int i = 10;int j = 3 ;while (i<20){System.out.println("good");i++;}System.out.println("end");}
}

5.do...while循环语句:

do...while 循环的语法结构:

do{

循环体(java语句);

}while(布尔表达式);

do...while 循环的执行次数为1到N,也就是说do...while至少会循环1次

6.控制语句break:

break 是java语言中的关键字,被翻译为“中断”/“折断”

break+“;”可以成为一个单独的完整的java语句: break; 

break语句可以用在switch语句之中,用来中止switch语句的执行。 

break语句同样也可以使用在循环语句之中,用来中止循环的执行。

public class partBreak {public static void main(String[] args) {for(int i =0; i< 20; i++){System.out.println(i);if(i == 10){break;}}}
}

break默认中止离它最近的循环,但是在给for起名字的情况下,*可以指定中止循环

        for1:for(int i = 0;i< 3; i++){for2:for(int j = 0; j<5 ;j++){System.out.println(j);if(j ==4){break for1;}}}

7.控制语句continue

contine 表示: 继续/ go on/ 下一个

continue 也是一个关键字加一个分号可以单独构成一个完成的java语句,主要出现循环语句中当中用来控制循环的执行。

break和continue的区别

        break表示循环不执行了

        continue表示直接进入下一次循环继续执行

continue例

        for(int i = 0; i<10;i++ ){if(i == 5){continue;}System.out.println(i);}

输出为

———————————————编写不易,喜欢的话,动动你的小手手,点个赞辛苦辛苦作者吧