Java基础之流程控制语句

1. 流程控制语句

1.1 概述

  • 什么是流程控制语句
    • 流程控制语句:可以控制程序的执行流程。
  • 流程控制语句的分类
    • 顺序结构
    • 选择结构
    • 循环结构
  • 执行流程:
    • 从上往下,依次执行。

1.2 顺序结构

 public static void main(String[] args) {
//  顺序结构,根据编写的顺序,从上到下
	System.out.println(1);
    System.out.println(2);
    System.out.println(3);
}

2. 判断语句

2.1 判断语句 --if

  • if语句第一种格式: if
    if(比较表达式) {
	语句体;
}
  • 执行流程:
    • 先计算比较表达式的值,看其返回值是true还是false。
    • 如果是true,就执行语句体;
    • 如果是false,就不执行语句体;
public static void main(String[] args) {
    System.out.println("开始");
//    定义两个变量
    int a = 10;
    int b = 20;
//    变量使用if判断
    if (a == b){
        System.out.println("a等于b");
    }
    int c = 10;
    if (a == c){
        System.out.println("a等于c");
    }
    System.out.println("结束");
}

2.2 判断语句 --if…else

  • if语句第二种格式: if…else
if(比较表达式) {
	语句体1;
}else {
	语句体2;
}
  • 执行流程:
    • 首先计算比较表达式的值,看其返回值是true还是false。
    • 如果是true,就执行语句体1;
    • 如果是false,就执行语句体2;
public static void main(String[] args) {
//判断给定的数据是技术还是偶数
//定义变量
    int a = 1;
    if (a % 2 == 0){
        System.out.println("a是偶数");
    }else{
        System.out.println("a是奇数");
    }
    System.out.println("结束");
}

2.3 判断语句 --if…else if…else

  • if语句第三种格式: if…else if …else
if(比较表达式1) {
	语句体1;
}else if(比较表达式2) {
	语句体2;
}else if(比较表达式3) {
	语句体3;
}
...
else {
	语句体n+1;
}
  • 执行流程:
    • 首先计算比较表达式1看其返回值是true还是false,
    • 如果是true,就执行语句体1,if语句结束。
    • 如果是false,接着计算比较表达式2看其返回值是true还是false,
public static void main(String[] args) {     
//x和y的关系满足如下:     
//x>=3 y = 2x + 1;     
//‐1<=x<3 y = 2x;     
//x<=‐1 y = 2x – 1;     
//根据给定的x的值,计算出y的值并输出。     
//定义变量 
    int x = 5; 
    int y; 
    if (x>= 3) { 
        y = 2 * x + 1; 
    } else if (x >=1 && x < 3) { 
        y = 2 * x; 
    } else  { 
        y = 2 * x ‐ 1; 
    }
    System.out.println("y的值是:"+y); 
}

2.4 if语句和三元运算符的互换

  • if语句和三元运算符的区
    • 三元运算符实现的,都可以采用if语句实现。反之不成立。
  • 什么时候if语句实现不能用三元改进呢?
    • 当if语句控制的操作是一个输出语句的时候就不能。
public static void main(String[] args) { 
    int a = 10;
    int b = 20; 
//定义变量,保存a和b的较大值
    int c;
    if(a > b) {
        c = a;
    } else { 
        c = b;
    } 
//可以上述功能改写为三元运算符形式 
    c = a > b ? a:b;
}

3. 选择语句

3.1 选择语句 --switch

  • :switch语句的格式
switch(表达式) {
      case 值1:
		语句体1;
		break;
	    case 值2:
		语句体2;
		break;
	    …
	    default:	
		语句体n+1;
		break;
}
  • 执行流程
    • 首先计算出表达式的值
    • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
    • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
public static void main(String[] args) {     
    //定义变量,判断是星期几 
    int weekday = 6; 
    //switch语句实现选择
    switch(weekday) { 
    case 1: 
        System.out.println("星期一");
        break; 
    case 2:
        System.out.println("星期二");
        break;
    case 3:
        System.out.println("星期三");
        break; 
    case 4:
        System.out.println("星期四"); 
        break;
    case 5: 
        System.out.println("星期五"); 
        break; 
    case 6:
        System.out.println("星期六");
        break; 
    case 7:
        System.out.println("星期日"); 
        break; 
    default:
        System.out.println("你输入的数字有误"); 
        break; 
    }
}
  • switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。

3.2 case的穿透性

  • 在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
public static void main(String[] args) {
    int i = 5; 
    switch (i){
        case 0:
            System.out.println("执行case0"); 
            break;
        case 5:
            System.out.println("执行case5"); 
        case 10:
            System.out.println("执行case10");
        default:
            System.out.println("执行default");
    }
}

4. 循环语句

4.1 循环概述

  • 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环

4.2 循环语句 --for

  • for循环语句的格式:
for(初始化表达式;条件表达式;循环后的操作表达式) {
   		循环体;
   	}
  • 执行流程:
    • 执行初始化语句
    • 执行判断条件语句,看其返回值是true还是false
      • 如果是true,就继续执行
      • 如果是false,就结束循环
    • 执行循环体语句;
    • 执行循环后的操作表达式
    • 回到B继续。
public static void main(String[] args) { 
    //控制台输出10次HelloWorld,不使用循环     
    System.out.println("HelloWorld"); 
    System.out.println("HelloWorld");
    System.out.println("HelloWorld");
    System.out.println("HelloWorld"); 
    System.out.println("HelloWorld"); 
    System.out.println("HelloWorld"); 
    System.out.println("HelloWorld"); 
    System.out.println("HelloWorld"); 
    System.out.println("HelloWorld"); 
    System.out.println("HelloWorld"); 
    System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");   
    //用循环改进,循环10次 
    //定义变量从0开始,循环条件为<10 
    for(int x = 0; x < 10; x++) { 
        System.out.println("HelloWorld"+x); 
    }
}

4.3 循环语句 --while

  • while循环语句格式
	初始化语句;
	while(判断条件语句) {
		循环体语句;
		控制条件语句;
	}
  • 执行流程:
    • 执行初始化语句
    • 执行判断条件语句,看其返回值是true还是false
      • 如果是true,就继续执行
      • 如果是false,就结束循环
    • 执行循环体语句;
    • 执行控制条件语句
    • 回到第二句继续
public static void main(String[] args) { 
    //while循环实现打印10次HelloWorld 
    //定义初始化变量
    int i = 1;
    //循环条件<=10  
    while(i<=10){ 
        System.out.println("HelloWorld"); 
        //步进 
        i++;
    }
}

4.4 循环语句 --do…while

  • do…while循环格式
初始化语句;
do {
	循环体语句;
	控制条件语句;
}while(判断条件语句);
  • 执行流程:
    • 执行初始化语句
    • 执行循环体语句;
    • 执行控制条件语句
    • 执行判断条件语句,看其返回值是true还是false
      • 如果是true,就继续执行
      • 如果是false,就结束循环
    • 回到b继续。
public static void main(String[] args) {
    int x=1;
    do {
        System.out.println("HelloWorld");
        x++; 
    }while(x<=10); 
}
  • do…while循环的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的 循环具有一定的风险性

4.5 循环语句的区别

  • for和while的区别:
    • 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消 失,能够提高内存的使用效率。
    • 在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用whil

4.6 跳出语句

break

  • 使用场景:
    • 终止switch或者循环 在选择结构switch语句中
    • 在循环语句中
    • 离开使用场景的存在是没有意义的
public static void main(String[] args) { 
    for (int i = 1; i<=10; i++) { 
        //需求:打印完两次HelloWorld之后结束循环
        if(i == 3){
            break; 
        } 
        System.out.println("HelloWorld"+i);
    }
}

continue

  • 使用场景:结束本次循环,继续下一次的循环
public static void main(String[] args) { 
    for (int i = 1; i <= 10; i++) { 
        //需求:不打印第三次HelloWorld 
        if(i == 3){
            continue; 
        } 
    System.out.println("HelloWorld"+i); 
    }
}

你可能感兴趣的:(JavaSE,崔斯坦,流程控制,Java基础)