java流程控制语句(if选择语句、switch选择语句、for循环、while循环、do... ...while循环语句和循环嵌套)

流程控制语句

​ java中的语句结构:

  • 顺序结构: 从上到下,从左到右
  • 选择结构: 满足条件执行,不满足不执行
  • 循环结构: 重复的不停的执行某些内容

选择结构

if选择语句

  • 单选择|单分支

    • //语法格式
      if(条件判断语句) {
      	执行语句体;
      }
      
    • 执行流程:

      1. 执行条件判断语句
      2. 如果结果为true,执行{ }中的语句体
      3. 如果结果为false,跳过if结构,不执行语句体,继续向下执行后面的代码
  • 双选择|双分支

    • //语法格式
      if(条件判断语句) {
      	执行语句体1;
      }else {
      	执行语句体2;
      }
      
    • 执行流程:

      1. 执行条件判断语句
      2. 如果结果为true,执行语句体1
      3. 如果结果为false,执行语句体2
  • 多选择|多分支

    • //语法格式
      if(条件判断语句1) {
      	执行语句体1;
      }else if(条件判断语句2{
      	执行语句体2;
      }else if(条件判断语句3{
      	执行语句体3;
      }
      ... ...
      else {
          执行语句体n;
      }
      
    • 执行流程:

      1. 执行条件判断语句1,如果结果为true,执行语句体1,如果结果为false,继续详细判断

      2. 执行条件判断语句2,如果结果为true,执行语句体2,如果结果为false,继续详细判断

        … …

      3. 如果以上条件都不满足,执行else中的语句体n

注意:如果语句体只有一句,前后的{ }可以省略。

switch选择语句

  • 语法结构:
switch(表达式) {	// 表达式: 一般指一个变量,或者使用表达式
				// 数据类型: byte,short,int,char,枚举(jdk1.5),字符串(jdk1.7)
	case1:	// 表达式的值会与case后的值进行判定,判定是否相等 
		语句体1;
		break;	// 提前结束swtich语句,防止case穿透
	case2:
		语句体2;
		break;
	case3:
		语句体3;
		break;
	....
	default:	// 如果当以上的case后的值都不满足表达式的结果的时候,执行default中的内容
        		// 位置可以改变,可以放在swtich中的任意位置
        		// 一般放在最后,break可以省略,如果放在其他位置,break不能省略
		语句体n;
		break;
}			
  • 执行流程:
    1. 计算表达式的结果
    2. 表达式的结果与case后的值依次判断,代码从上到下依次执行,如果与当前case后面值相同,执行对应的语句体
    3. 如果表达式的结果与所有case后的值都不相同,执行default中的语句体
  • 注意事项:
    • case穿透:如果执行完成对应的语句体后没有break,会发生case穿透,后面的case不再判断,执行执行下面的语句体,直到遇到下一个break或者switch的结束而结束
    • default位置可以改变,可以放在swtich中的任意位置,一般放在最后,break可以省略,如果放在其他位置,break不能省略

循环语句

需要重复大量执行某些动作时,可以使用循环语句。java中循环语句有以下三种:

  • for 循环语句
  • while 循环语句
  • do … while 循环语句

for循环语句

  • 语法结构:

    // 条件初始化:声明一个变量i,并且赋初始值,作用域只是在当前循环体中
    // 			变量i,可以控制循环的次数,控制要使用的参数
    // 条件判断:判断条件i是否满足要求
    // 条件变化:i自身值的改变
    for(条件初始化; 条件判断; 条件变化) {
    	循环体语句;
    }
    
  • 执行流程:

    1. 执行条件初始化,声明一个变量并赋初始值
    2. 进行条件判断,判断是否满足条件,如果结果false,for循环结束,循环体不会再次进入
    3. 如果结果true,满足条件,就去执行以此循环体语句
    4. 执行条件变化
    5. 从二次循环开始,就重复执行2,3,4步
  • 注意点:

    • 如果循环体语句只有一句,前后的{}可以省略
    • for( ; ; ) {} 是一个死循环,后面不能有其他代码,否则编译报错:无法访问的语句

while循环语句|条件循环

  • 语法结构:

    条件初始化;	
    while(条件判断) {
    	循环体语句;
    	条件变化;	// 切记不要漏掉,否则可能会形成死循环
    }
    
  • 执行流程:

    1. 条件初始化
    2. 执行条件判断
    3. 如果满足条件执行循环体语句,如果不满足条件结束
    4. 重复执行2,3步
  • 注意点:

    • while (true) {}:典型的死循环
    • while (false) {循环体语句;}:会报错;boolean b = false; while (false) {循环体语句;}:不会报错

do… …while循环语句

  • 语法结构:

    条件初始化;
    do{
    	循环体语句;
    	条件变化;
    } while(条件判断);
    
  • 与while循环的区别:

    • while循环:先判断条件是否满足,再执行循环体
    • do… …while循环语句:先执行,后判断,无论是否满足条件,都至少执行一次

循环嵌套

循环语句可以互相嵌套,形成多重循环,其中较常见的是双重for循环

  • 语法结构:

    for(条件初始化1; 条件判断1; 条件变化1){
    	循环体语句;
    	for(条件初始化2; 条件判断2; 条件变化2){
    		循环体语句;
    	}
    	循环体语句;
    }
    
  • 外层循环执行一次,内层循环执行一轮

  • 举例:打印九九乘法表:

    public class Nine {
    	public static void main(String[] args) {
    		for(int i = 1; i <= 9; i ++) {
    			for(int j = 1; j <= i; j ++) {
    				int mul = i * j;
    				System.out.print(j + "×" + i + "=" + mul + "\t");
    			}
    			System.out.println();
    		}
    	}
    }
    

break和continue

  • break:

    • 作用: 终止,停止,结束整个所在的循环语句
    • 应用场景: 循环和switch语句中
    //模拟击鼓传花场景
    //产生一个1~11之间的随机数
    int num=(int)(Math.random()*(11-1+1)+1);
    System.out.println(num);
    int i=0; //学生的编号
    //游戏开始
    while(true){
    	i++;
    	if(i==num){
    		System.out.println("游戏结束"+i);
    		break;	// 与while(true)配合是break的典型用法
    	}
    }
    
  • continue:

    • 作用: 跳过本次循环后面的所有内容,继续下一次循环
    • 应用场景: 只能用在循环中
    // 打印1~10之间的数,遇到3|3的倍数就跳过
    for(int i = 0; i <= 10; i++) {
    	if(i % 3 == 0) {
    		System.out.println("跳过");
    		continue; //下面的代码不执行,直接进入下一次循环
    		//System.out.println(i);	// 编译报错: 无法访问的语句
    	}
    	System.out.println(i);
    }
    
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值