Day13 -- Java流程控制02

1. 顺序结构

  • Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
  • 是任何一个算法都离不开的一种基本算法结构。

2. 选择结构

  • if单选择结构
  • if双选择结构
  • if多选择结构
  • 嵌套的if结构
  • switch多选择结构

1) if单选择结构

语法

if(布尔表达式){
	//如果布尔表达式为true将执行的语句    
}

2) if双选择结构

两个判断-->双选择结构 if-else结构

语法

if(布尔表达式){
    //如果布尔表达式的值为true
}else{
     //如果布尔表达式的值为false
}

3) if多选择结构

语法:

if(布尔表达式1){
    //如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
    //如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){
    //如果布尔表达式3的值为true执行代码
}else{
    //如果以上布尔表达式都不为true执行代码
}

Note:

  • if语句至多有1个else语句,else语句在所有的else if语句之后;
  • if语句可以有若干个else if语句,它们必须在else语句之前。
  • 一旦其中一个else if语句检测为true,其它的else if以及else语句都将跳

4) 嵌套的if结构

可以在另一个if或者else if语句中使用if或者else if语句。

语法:

if(布尔表达式1){
    //如果布尔表达式1的值为true执行代码
    if(布尔表达式2){
        //如果布尔表达式2的值为true执行代码
    }
}

switch多选择结构

  • switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
  • swtich语句中的变量类型可以是:
    • byte、short、int或者char
    • 从Java SE 7开始,switch支持字符串String类型了 字符的本质也是数字(可以通过反编译文件查看)
    • 同时case标签必须为字符串常量或字面量

语法:

switch(expression){  //switch匹配一个具体的值
    case value :
        //语句
        break; //可选
    case value :
        //语句
        break; //可选
    //可以有任意数量的case语句
    default: //可选
        //语句
}

case穿透

若分支没有break,则满足的分支代码执行后,后续的代码会继续执行,直至switch的block结束

规范:每写一个case分支,都要加上break;

补充知识:

在IDEA中反编译class文件

class文件是机器能识别的指令文件,要把它反编译成自然语言,可通过IDEA进行

步骤:

  1. 打开IDEA项目结构,找到项目输出文件的路径

IDEA反编译class文件1

  1. 在Explorer中打开以上路径,找到对应的.class文件

  2. 鼠标右键对应类,选择show in explorer,打开该类所在目录,一般是src目录下,.java文件存放目录

    打开类所在src目录

  3. 将上述class文件在文件夹层面上拷贝到java文件存放的目录下,IDEA中即会展示出.class文件,可如同Java文件一样打开查看反编译后的文件

3. 循环结构

  • while循环
  • do...while循环
  • for循环
  • 在java5中引入了一种主要用于数组的增强型for循环

while循环

while是最基本的循环,它的结构为:

while(布尔表达式){
    //循环内容 
}
  • 大多数情况下是会让循环停止下来的,需要一个让表达式失效的方式来结束循环
  • 少部分情况需要循环一直执行,比如服务器的请求响应监听等。

do...while循环

  • while不满足条件则不执行;do while至少执行一次。

  • 结构:

    do{
        //代码语句
    }while(布尔表达式);
    

例子:

int a = 0;
while(a<0){
    System.out.println(a);
    a++;
}
System.out.println("===================");
do{
    System.out.println(a);
    a++;
}while(a<0);		//会输出一个0

for循环

  • for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构

  • for循环执行的次数实在执行前就确定的,语法格式如下:

    for(初始化;布尔表达式;更新){
        //代码语句
    }
    

    IDEA中快捷键({n}.for会自动弹出循环n次对应的for循环条件)

练习:九九乘法表

/*
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 * 5 = 5	2 * 5 = 10	3 * 5 = 15	4 * 5 = 20	5 * 5 = 25
1 * 6 = 6	2 * 6 = 12	3 * 6 = 18	4 * 6 = 24	5 * 6 = 30	6 * 6 = 36
1 * 7 = 7	2 * 7 = 14	3 * 7 = 21	4 * 7 = 28	5 * 7 = 35	6 * 7 = 42	7 * 7 = 49
1 * 8 = 8	2 * 8 = 16	3 * 8 = 24	4 * 8 = 32	5 * 8 = 40	6 * 8 = 48	7 * 8 = 56	8 * 8 = 64
1 * 9 = 9	2 * 9 = 18	3 * 9 = 27	4 * 9 = 36	5 * 9 = 45	6 * 9 = 54	7 * 9 = 63	8 * 9 = 72	9 * 9 = 81
 */

//自己的解法
/*
for (int i = 1; i <= 9; i++) {
	for (int j = 1; j <= i; j++) {
    	System.out.printf("%d * %d = " + j*i +"\t", j, i);
    }
    System.out.print('\n');
}
*/
//课程解法
//1.先打印第一列
//2.把固定的1再用一个循环包起来
//3.去掉重复项,i<=j
//4.调整样式
for (int j = 1; j <= 9; j++) {
    for (int i = 1; i <= j; i++) {
        System.out.print(i+"*"+j+"="+(j*i) + "\t");
    }
    System.out.println();
}

增强for循环

  • Java5引入了一种主要用于数组或集合的增强型for循环。

  • Java增强for循环语法格式如下:

    for(声明语句:表达式){
        //代码语句
    }
    
  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数字元素的值相等。

  • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法

posted @ 2021-02-25 17:45  筠亭之  阅读(69)  评论(0编辑  收藏  举报