Java 循环语句

java的循环语句

for循环

含义:条件成立就重复执行

好处:减少了代码的冗余(减少重复性的代码)

语法结构:
 for(表达式1;表达式2;表达式3){
     ...代码块...
 }

理解:
 表达式1:初始化变量
 表达式2:判断条件
 表达式3:更新变量

 执行流程:
     1.初始化变量
     2.判断条件:判断条件的结果必须是boolean
     2.1 true - 执行代码块,并更新变量,重复第2个步骤
     2.2 false- 跳出整个循环语句

for循环变形记:
 循环中声明变量的作用域只能在循环内
 在循环中i++++i没有区别

例: int i = 1;
 for(;i<=5;){
     System.out.println("用良心做教育");
     //i++;
     ++i;
 }
 System.out.println(i);//6

案例1:输出1~9数字中的奇数
 //解决方案1
 for(int i = 1;i<10;i+=2){
     System.out.println(i);
 }
 //解决方案2
 for(int i = 1;i<10;i++){
     if(i%2!=0){
         System.out.println(i);
     }
 }
案例2:循环录入某同学的5门课成绩,计算平均分
 Scanner scan = new Scanner(System.in);
 double sum = 0;//总成绩
 for(int i = 1;i<=5;i++){
     System.out.println("请输入第" + i + "门成绩:");
     double score = scan.nextDouble();
     sum += score;//累加
 }
 System.out.println("平均分为:" + (sum/5));
总结:i可以从1开始也可以从0开始,更新变量可以递增也可以递减
死循环:(应该避免的)
 for(;;){
     System.out.println("用良心做教育");
 }	
伪死循环:i超过取值范围时,值会变成负数(应该避免的)
 for(int i = 0;i>=0;i++){
     System.out.println("用良心做教育");
 }
for循环嵌套
需求:九九乘法表
    //方案一
    for(int i = 1;i<=9;i++){
        for(int j = 1;j<=i;j++){
            System.out.print(j + "x" + i + "=" + (i*j) + "\t");
        }
        System.out.println();
    }
	//方案二
    for(int i = 1;i<=9;i++){
        for(int k = 1;k<i;k++){
            System.out.print("\t");
        }
        for(int j = i;j<=9;j++){
            System.out.print(i + "x" + j + "=" + (i*j) + "\t");
        }
        System.out.println();
    }

while循环

知识点:while循环
			
    语法结构:
        while(表达式){
            ...代码块...
        }

    理解:
        表达式的结果必须是boolean
        	true - 执行代码块
        	false- 跳出循环

    死循环:
        while(true){
            System.out.println("死循环");
        }

    while循环变形记:while循环可以表示for循环
        int i = 0;
        while(i < 5){
            System.out.println("用良心做教育");
            i++;
        }

do-while循环

知识点:do-while循环
			
    语法结构:
        do{
            ...代码块...
        }while(表达式);

    理解:
        表达式的结果必须是boolean
        	true - 执行代码块
        	false- 跳出循环

    执行顺序:
        1.先执行一遍代码块
        2.判断表达式
        	2.1 true - 执行代码块,再重复第2个步骤
       		2.2 false- 跳出循环

    死循环:
        do{
            System.out.println("死循环");
        }while(true);

    案例:小明参加学校组织的歌咏比赛,大赛在即,
        老师建议:先彩排一次,如果很令人满意,
        以后就不用彩排了,否则每天都排,直到现场表现满意为止!	
		
		Scanner scan = new Scanner(System.in);
		
		String str;
		do{
			System.out.println("小明:旋转、跳跃,我闭着眼~~~");
			System.out.println("小明:老师,您满意了吗?");
			str = scan.next();
		}while(str.equals("不满意"));

特殊的流程控制语句

1.break 作用:
  1. 作用于循环中,表示跳出当前循环
  2. 作用于switch中,跳出switch分支语句
2.continue 作用:

作用于循环中,表示跳过当前循环剩余的部分,进入到下一次循环

3.return 作用:
作用于方法中,表示结束该方法
4.lable的运用

可给循环起别名

1.break
    作用:
    	作用于循环中,表示跳出当前循环
    	作用于switch中,跳出switch分支语句
    做实验:
        while(true){
            System.out.println("111");
            System.out.println("222");
            if(true){
                break;	//	后面的语句不会执行
            }
            System.out.println("333");
            System.out.println("444");
        }
案例:循环录入某同学5门课的成绩并计算平均分,如果某分数录入为负停止录入并提示。
    	Scanner scan = new Scanner(System.in);
        double sum = 0;

        boolean flag = true;//true-5次正常录入	false-有输入负数的情况
        for(int i = 1;i<=5;i++){
            System.out.println("请输入第" + i + "门成绩:");
            double score = scan.nextDouble();
            if(score < 0){
                flag = false;
                break;
            }
            sum+=score;
        }

        if(flag){
            double avg = sum/5;
            System.out.println("平均分为:" + avg);
        }else{
            System.out.println("分数为负数,停止录入");
        }

2.continue
    作用:作用于循环中,表示跳过当前循环剩余的部分,进入到下一次循环
    做实验:
        while(true){
            System.out.println("111");
            System.out.println("222");
            if(true){
                continue;
            }
            System.out.println("333");
            System.out.println("444");
        }
案例:循环录入Java5名学生的成绩,统计分数大于等于80分的学生比例。
        Scanner scan = new Scanner(System.in);
        int num = 0;//记录成绩大于等于80分学生的人数
        for(int i = 1;i<=5;i++){
            System.out.println("请输入第" + i + "名学生的成绩:");
            double score = scan.nextDouble();
            if(score < 80){
                continue;
            }
            num++;
        }
        System.out.println("分数大于等于80分的学生比例为:" + (num/5.0*100) + "%");
			
3.return
    作用:作用于方法中,表示结束该方法
    做实验:
        System.out.println("111");
        System.out.println("222");
        if(true){
            return;
        }
        System.out.println("333");//无效语句
        System.out.println("444");//无效语句

4.知识点:lable的面试题
			
    描述下列代码第几行报错?
    答:不会报错,// 后面为注释
		
    http://www.baidu.com
    for(int i = 0;i<5;i++){
        System.out.println("用良心做教育");
    }
知识点:lable的运用
			
    需求:嵌套for循环,外层循环5次,内层循环3次,
    外层循环到第3次时,在内层循环中退出外层循环
    
		a:for(int i = 1;i<=5;i++){
			for(int j = 1;j<=3;j++){
				System.out.println(i + " -- " + j);
				if(i == 3){
					break a;
				}
			}
		}

for vs while vs do-while

循环共同点:判断条件的结果都是boolean值,true-循环 false-跳出循环
    
执行顺序的区别:
    for:先判断,再执行
    while:先判断,再执行
    do-while:先执行一遍,再判断
语法结构的区别:
    for(初始化变量;判断条件;更新变量){}
    while(判断条件){}
    do{}while(判断条件);			
应用场景的区别:
    循环次数确定:for
    循环次数不确定,先判断,再执行:while
    循环次数不确定,先执行一遍,再判断:do-while

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值