4. 流程控制语句

来源:互联网 发布:linux网络排查 编辑:程序博客网 时间:2024/06/05 22:37

1:switch语句(掌握)

       (1)格式:

              switch(表达式) {

                     case 值1:

                            语句体1;

                            break;

                     case 值2:

                            语句体2;

                            break;

                     ...

                     default:

                            语句体n+1;

                            break;

              }

             

              格式解释说明:

                     switch:说明这是switch语句。

                     表达式:可以是byte,short,int,char

                            JDK5以后可以是枚举

                            JDK7以后可以是字符串

                     case:后面的值就是要和表达式进行比较的值

                     break:表示程序到这里中断,跳出switch语句

                     default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else

       (2)面试题

              switch语句的表达式可以是byte?可以是long?可以是String?

                                                       可以,            不可以,          JDK7以后可以

       (3)执行流程:

              A:首先计算表达式的值

              B:和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。

              C:如果没有匹配,就执行default的语句体n+1。

       (4)注意事项:

              A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

              B:default可以省略吗?

                     可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

                     特殊情况:

                            case就可以把值固定。

                            A,B,C,D

              C:break可以省略吗?

                     可以省略,但是结果可能不是我们想要的。

                     会出现一个现象:case穿透。

                     最终我们建议不要省略

              D:default一定要在最后吗?

                     不是,可以在任意位置。但是建议在最后。

              E:switch语句的结束条件

                     a:遇到break就结束了

                     b:执行到末尾就结束了

       (5)案例:

              A:键盘录入一个数字(1-7),输出对应的星期几。

              B:单项选择题

              C:键盘录入一个字符串的问题

                     Strings = sc.nextLine();

              D:根据给定的月份,输出对应的季节

class SwitchTest4 {    publicstatic void main(String[] args) {           //创建键盘录入对象           Scanner sc = new Scanner(System.in);                     //录入数据           System.out.println("请输入月份(1-12):");           int month = sc.nextInt();           //我们使用一个我们不想使用的东西:case穿透           switch(month) {                  case1:                  case2:                  case12:                         System.out.println("冬季");                         break;                  case3:                  case4:                  case5:                         System.out.println("春季");                         break;                  case6:                  case7:                  case8:                         System.out.println("夏季");                         break;                  case9:                  case10:                  case11:                         System.out.println("秋季");                         break;                  default:                         System.out.println("你输入的月份有误");           }    }}

       (6)if语句和switch语句各自的场景

              A:if

                     针对boolean类型的判断

                     针对一个范围的判断

                     针对几个常量的判断

              B:switch

                     针对几个常量的判断

2:循环语句(掌握)

       (1)有三种:     for,         while,     do...while

       (2)for循环语句

              A:格式

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

                            循环体语句;

                     }

                     执行流程:

                            a:执行初始化语句

                            b:执行判断条件语句

                                   如果这里是true,就继续

                                   如果这里是false,循环就结束

                            c:执行循环体语句

                            d:执行控制条件语句

                            e:回到b

              B:注意事项

                     a:判断条件语句无论简单还是复杂,结果是boolean类型

                     b:循环体语句如果是一条,可以省略大括号,但是不建议

                     c:有分号就没有左大括号,有左大括号就没有分号

              C:案例

                     a:输出10HelloWorld

                     b:输出1-10的数据

                     c:输出10-1的数据

                     d:1-10的和

                     e:1-100的和,1-100的偶数和,1-100的奇数和

                     f:5的阶乘

                     g:在控制台打印水仙花数

                     h:统计水仙花个数

public class ForDemo6 {    public static void main(String[] ages) {        int count = 0;        for (int x = 100; x <= 999; x++) {            int ge =x % 10;            int shi= x / 10 % 10;            int bai= x / 10 / 10 % 10;            if (x== (ge * ge * ge + shi * shi * shi + bai * bai * bai)) {                count++;                System.out.println(x);            }        }        System.out.println("水仙花数一共为:"+count+"个");    }}

                     i:改进版的回文数

                            一个五位数

                            个位 =万位

                            十位 =千位

                            个位 +十位 +千位 +万位 =百位

public class ForDemo7 {    public static void main(String[] ages){        for(int x =9999;x<100000;x++){            int ge=x%10;            intshi=x/10%10;            intbai=x/10/10%10;            intqiao=x/10/10/10%10;            intwan=x/10/10/10/10%10;            if((ge==wan)&&(shi==qiao)&&(ge+shi+qiao+wan==bai)){                System.out.println(x);            }        }    }}

                     j:统计1-1000之间同时满足如下条件的数据有多少个

                            x%3==2

                            x%5==3

                            x%7==2

public class ForDemo9 {    public static void main(String[] age){        int count=0;        for(int x=0;x<=1000;x++){            if((x%3==2)&&(x%5==3)&&(x%7==2)){                count++;            }        }        System.out.println("1-10000之间同时满足条件的数据为:"+count+"个");    }}

       (3)while循环

              A:基本格式

                     while(判断条件语句) {

                            循环体语句;

                     }

                     扩展格式:

                            初始化语句;

                            while(判断条件语句){

                                   循环体语句;

                                   控制条件语句;

                            }

                     通过查看这个格式,我们就知道while循环可以和for循环等价转换。

              B:while的练习

                     for语句的练习用while改进

              C:forwhile的区别

                     a:使用上的区别

                            for语句的那个控制条件变量,在循环结束后不能在使用了。

                            while的可以继续使用。

                     b:理解上的区别

                            for适合于一个范围的判断

                            while适合次数不明确的

                                   举例:吃葡萄

              D:案例:

                     a:我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m

       请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?

class WhileDemo5 {       publicstatic void main(String[] args) {              //定义一个统计变量,默认值是0              int count = 0;              //最高山峰是珠穆朗玛峰:8848m这是最终的厚度              //我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度              //为了简单,我把0.01变成1,同理8848就变成了884800              int end = 884800;              int start = 1;              while(start<end) {                     //只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++                     count++;                     //折叠一次有什么变化呢?就是厚度是以前的2倍。                     start*= 2;                                         System.out.println("第"+count+"次厚度是"+start);              }              //输出统计变量。              System.out.println("要叠"+count+"次");       }}

       (4)do...while循环

              A:基本格式

                     do {

                            循环体语句;

                     }while(判断条件语句);

                     扩展格式:

                            初始化语句;

                            do{

                                   循环体语句;

                                   控制条件语句;

                            }while(判断条件语句);

总结:通过查看格式,我们就可以看出其实三种循环的格式可以是统一的。

              B:三种循环的区别

                     a:do...while循环至少执行一次循环体

                     b:forwhile必须先判断条件是否是true,然后后才能决定是否执行循环体

       (5)循环使用的注意事项(死循环)

              A:一定要注意修改控制条件,否则容易出现死循环。

              B:最简单的死循环格式

                     a:while(true){...}

                     b:for(;;){}

3:循环嵌套(掌握)

循环嵌套:就是循环语句的循环体本身是一个循环语句。

通过结果我们知道这样的一个结论:外循环控制行数内循环控制列数

       需求:在控制台输出九九乘法表。

       首先我们写出九九乘法表:

              1*1=1

              1*2=2     2*2=4

              1*3=3     2*3=6     3*3=9

              1*4=4     2*4=8     3*4=12   4*4=16

              ...

              1*9=9     2*9=18   3*9=27   ...

       我们先把这个九九乘法表看出是这样的一个形状:

              *

              **

              ***

              ****

              *****

              ******

              *******

              ********

              *********

       注意:

              '\x'x表示任意,这种做法叫转移字符。

              '\t'    tab键的位置

              '\r'   回车

              '\n'   换行

class ForForDemo3 {   publicstatic void main(String[] args) {          for(int x=0; x<9; x++) {                 for(inty=0; y<=x; y++) {                        System.out.print("*");                 }                 System.out.println();          }          System.out.println("--------------");          //为了使用数据,我们从1开始          for(int x=1; x<=9; x++) {                 for(inty=1; y<=x; y++) {                        System.out.print(y+"*"+x+"="+y*x+"\t");                 }                 System.out.println();          }   }}

4:控制跳转语句(掌握)

       (1)break:中断的意思

              A:用在循环(循环语句中加入了if判断的情况)和switch语句中,离开此应用场景无意义。

              B:作用

                     a:跳出单层循环

                     b:跳出多层循环,需要标签语句的配合

要想实现这个效果,就必须知道一个东西。带标签的语句。

                            格式:

                                   标签名:语句

class BreakDemo {       publicstatic void main(String[] args) {              //在switch 或 loop 外部中断              //break;              //跳出单层循环              for(int x=0; x<10; x++) {                     if(x== 3) {                            break;                     }                     System.out.println("HelloWorld");              }              System.out.println("over");              System.out.println("-------------");              wc:for(int x=0; x<3; x++) {                     nc:for(int y=0; y<4; y++) {                            if(y == 2) {                                   //break nc;                                   break wc;                            }                            System.out.print("*");                     }                     System.out.println();              }       }}

       (2)continue:继续

              A:用在循环中,离开此应用场景无意义。

              B:作用

                     a:跳出一次循环,进入下一次的执行

              C:练习题:

              我想在控制台输出2:Java基础班“

              我想在控制台输出7:Java基础班“

              我想在控制台输出13:Java基础班“

public class ContinueDemo {  public static void main(String[] ages) {      for (int x = 1; x <= 10; x++) {          if (x %3 == 0) {              System.out.println(x +"Java基础班"); //控制台输出13次              // break;      //控制台输出2次              // continue;   //控制台输出7次          }          System.out.println(x+ "Java基础班");      }  }}

(3)return:返回

              A:用于结束方法的,后面还会在继续讲解和使用。

              B:一旦遇到return,程序就不会在继续往后执行。

5.简要(掌握)

1:switch语句的格式?针对格式的解释?以及注意事项?

       格式:

              switch(表达式) {

                     case 值1:

                            语句体1;

                            break;

                     case 值2:

                            语句体2;

                            break;

                     ...

                     default:

                            语句体n+1;

                            break;

              }

             

       格式解释说明:

                     switch:说明这是switch语句。

                     表达式:可以是byte,short,int,char

                            JDK5以后可以是枚举

                            JDK7以后可以是字符串

                     case:后面的值就是要和表达式进行比较的值

                     break:表示程序到这里中断,跳出switch语句

                     default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else

       注意事项:

              A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

              B:default可以省略吗?

                     可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

                     特殊情况:

                            case就可以把值固定。

                            A,B,C,D

              C:break可以省略吗?

                     可以省略,但是结果可能不是我们想要的。

                     会出现一个现象:case穿透。

                     最终我们建议不要省略

              D:default一定要在最后吗?

                     不是,可以在任意位置。但是建议在最后。

              E:switch语句的结束条件

                     a:遇到break就结束了

                     b:执行到末尾就结束了

 

2:break,continuereturn分别有什么用?

       break:中断的意思

              A:用在循环和switch语句中,离开此应用场景无意义。

              B:作用

                     a:跳出单层循环

                     b:跳出多层循环,需要标签语句的配合

       continue:继续

              A:用在循环中,离开此应用场景无意义。

              B:作用

                     a:跳出单层循环的一次,可以继续下一次

       return:返回

              A:用于结束方法的。

              B:一旦遇到return,程序就不会在继续往后执行。


原创粉丝点击