zoukankan      html  css  js  c++  java
  • 11_程序中的循环

    程序中的循环

    概念:通过某个条件,重复的执行一段逻辑代码

    一. while循环

    语法:
    while(布尔表达式){

    ​ //逻辑代码(循环操作)

    ​ }

    执行流程:

    • 先对布尔表达式进行判断,结果为true,则执行逻辑代码
    • 本次执行完毕后,再次进行判断,结果仍为true,则再次执行逻代码
    • 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码

    题目一:打印100遍HelloWorld

    public class TestWhile{
    	
    	public static void main(String[] args){
    		
    		//打印100遍HelloWorld
    		
    		int i = 1;//1.初始部分:用于判断的变量
    		
    		while (i <= 100){//2.循环条件:决定是否继续循环的依据
    			System.out.println("HelloWorld");//3.循环操作:单次执行的逻辑代码或任务
    			i++;//4.迭代部分:控制循环条件改变的增量
    		}
    		
    		System.out.println("程序结束...");
    	}
    }
    

    题目二:获取1-100之间所有数字的总和

    public class TestGetSum{
    	
    	public static void main(String[] args){
    		/*
    			获取1-100之间所有数字的总和
    			1.循环100次的问题
    			2.循环的过程中进行求和
    		*/
    		int i = 1;//初始部分
    		
    		int sum = 0;
    		
    		while(i <= 100){//循环条件
    			
    			sum = sum + i;//循环操作
    			
    			i++;//迭代部分
    		}
    		
    		System.out.println("总和为:" + sum);
    		
    		System.out.println("程序结束...");
    		
    	}
    }
    

    题目三:求1-100之间所有偶数的和

    public class TestGetSum2{
    	
    	public static void main(String[] args){
    		
    		/*
    			求1-100之间所有偶数的和
    			
    			方案一:获取所有的偶数,相加求和
    			
    			方案二:依旧获取1-100之间的每一个数字,进行偶数的判断,满足条件后,相加求和
    		*/
    		
    		int i = 1;
    		
    		int sum = 0;
    		
    		while(i <= 100){
    			
    			if(i %2 == 0){//判断偶数
    			
    				sum = sum + i;//求和
    			}
    			
    			i++;
    		}
    		System.out.println("偶数的和:" + sum);
    	}
    }
    

    注意:循环有四部分组成

    While的特点:

    • 首次判断不满足,则一次都不会执行(执行次数:0~n次)
    • 首次即有入口条件,先判断、再执行,适用于循环次数明确的情况

    二. do while循环

    语法:
    do{

    ​ 逻辑代码(循环操作)

    ​ }while(布尔表达式);

    执行流程:

    • 先执行一次循环操作之后,再进行布尔表达式的判断
    • 如果结果为true,则再次执行循环操作
    • 如果结果为false,才会退出循环结构,执行后续代码

    题目四:打印100遍HelloWorld

    public class TestDoWhile{
       
       public static void main(String[] args){
       	
       	//打印100遍HelloWorld
       	
       	int i = 1;
       	
       	do{
       		System.out.println("打印HelloWorld第" + i + "次");
       		i++;
       	}while(i <= 100);
       	
       	System.out.println("程度结束...");
       }
    }
    

    题目五:老师批改学生作业

    import java.util.Scanner;
    
    public class TestDoWhile2{
    	
    	public static void main(String[] args){
    		
    		//循环操作:学生抄写代码、教师输入评语
    		Scanner input = new Scanner(System.in);
    		
    		char answer;//记录老师当次的评语
    		do{
    			System.out.println("抄写一遍作业代码。。。。。。");
    			
    			System.out.println("请输入老师评语:");
    			answer = input.next().charAt(0);//输入y,表示及格,退出循环;否则继续循环
    		}while(answer != 'y');
    		
    		System.out.println("作业已完成");
    		
    	}
    }
    

    do while特点:

    • 首次没有入口条件,先执行,再判断
    • 判断满足,则循环,不满足,则至少执行一次(执行次数:1~n次)
    • 适用场景:适用于循环次数不明确的情况

    三. for循环

    语法:

    for(初始部分;循环条件;迭代部分){

    ​ //循环操作

    }

    执行流程:

    • 首次执行初始部分(仅一次)
    • 对布尔表达式进行判断,结果为true,则执行逻辑代码
    • 本次执行完毕后,执行迭代部分,再次判断,结果仍为true,则再次执行逻辑代码
    • 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码

    题目六:打印100遍HelloWorld

    public class TestFor{
    	
    	public static void main(String[] args){
    		
    		//打印100遍HelloWorld
    		//1.初始部分(只执行一次)2.循环条件3.循环操作4.迭代部分
    		for(int i = 1; i <= 100; i++){
    			
    			System.out.println("HelloWorld" + i);
    		}
    		System.out.println("程序结束...");
    	}
    }
    //for循环与while循环相同,首次判断不满足,则一次都不会执行。(执行次数:0~n次)
    

    题目七:计算五位同学平均分

    import java.util.Scanner;
    
    public class TestFor2{
    	
    	public static void main(String[] args){
    		
    		Scanner input = new Scanner(System.in);
    		
    		//计算5位同学的平均分
    		
    		double sum = 0.0;//总和
    		
    		for(int i = 1; i <= 5; i++){
    			//1.循环控制台录入分数
    			System.out.println("请输入第" + i + "位同学的成绩:");
    			
    			double score = input.nextDouble();
    			//2.累加总和
    			sum = sum + score;
    			
    		}
    		
    		double avg = sum / 5;
    		System.out.println("平均分是:" + avg);
    	}
    }
    

    特点:首次即有入口条件,先判断、再执行,适用于循环次数明确的情况

    流程控制语句:

    • break:结束整个循环
    • Continue:循环执行中,遇到continue,则跳过此次,继续下一个循环

    题目八:break

    import java.util.Scanner;
    
    public class TestBreak{
    	
    	public static void main(String[] args){
    		
    		Scanner input = new Scanner(System.in);
    		//控制台录入5位同学成绩,如果有同学成绩不满足(0-100)视为不合法,则退出循环
    		double sum = 0.0;
    		
    		boolean flag = true;//代表合法
    		for(int i = 1; i <= 5; i++){
    			
    			System.out.println("请输入第" + i + "位同学的成绩:");
    			
    			double score = input.nextDouble();
    			
    			if(score < 0 || score > 100){
    				flag = false;//非法数据
    				break;
    			}
    			
    			sum = sum + score;
    			
    		}
    		
    		if(flag == true){//根据flag标记决定是否要计算平均分
    			
    			double avg = sum / 5;
    			
    			System.out.println("平均分是:" + avg);
    		}else{
    			
    			System.out.println("非法数据,请重新运行程序计算平均分");
    		}
    		
    		
    		
    	}
    }
    

    题目九:continue

    import java.util.Scanner;
    
    public class TestContinue{
    	
    	public static void main(String[] args){
    		
    		Scanner input = new Scanner(System.in);
    		//控制台录入5位同学成绩,如果有同学成绩不满足(0-100)视为不合法,继续输入直到合法,然后计算5位同学平均分
    		double sum = 0.0;
    		
    		for(int i = 1; i <= 5; ){
    			
    			System.out.println("请输入第" + i + "位同学的成绩:");
    			
    			double score = input.nextDouble();
    			
    			if(score < 0 || score > 100){
    				
    				continue;
    			}
    			
    			sum = sum + score;
    			
    			i++;
    		}
    			
    		double avg = sum / 5;
    			
    		System.out.println("平均分是:" + avg);
    		
    		
    	}
    }
    

    四. 嵌套循环

    概念:在一个完整的循环结构中,嵌套另一个完整的循环结构

    题目十:打印三行五列星星*

    public class TestNestedFor{
    	/*
    			
    			*****
    			*****
    			*****
    		*/
    	public static void main(String[] args){
    		for(int i = 1; i <=3; i++){//将内部代码重复3次
    			for(int j = 1; j <=5; j++){//在一行中打印五颗星
    			
    			System.out.print("*");
    			}
    			System.out.println();
    			
    		}
    		
    	}
    }
    

    题目十一:计算三个班每班里五位同学平均分

    import java.util.Scanner;
    
    public class TestNestedFor2{
    	
    	public static void main(String[] args){
    		
    		Scanner input = new Scanner(System.in);
    		
    		for(int k = 1; k <= 3; k++){
    			
    			System.out.println("------第" + k + "班------");
    			
    			double sum = 0.0;
    			
    			for(int i = 1; i <=5; i++){
    			
    				System.out.println("请输入第" + i + "位同学的成绩:");
    				
    				double score = input.nextDouble();
    			
    				sum += score;
    			}
    			
    			double avg = sum / 5;
    			
    			System.out.println("第" + k + "班五位同学的平均分为:" + avg);
    		}
    		
    	}
    }
    

    题目十二:用*打印直角三角形

    public class TestNestedFor3{
    	
    	public static void main(String[] args){
    		
    		/*
    			打印直角三角形
    			
    			*
    			**
    			***
    			****
    			*****
    		*/
    		for(int i =1; i <= 5; i++){//外层控制行数
    			for(int j = 1; j <= i; j++){//内层控制列数
    				
    				System.out.print("*");
    			}
    			System.out.println();
    		}
    		System.out.println("程序结束");
    	}
    }
    

    题目十三:九九乘法口诀

    public class TestNestedFor4{
    	
    	public static void main(String[] args){
    		
    		for(int i = 1; i <= 9; i++){
    			
    			for(int j = 1; j <= i; j++){
    				
    				System.out.print(j + "*" + i + " = " + (j*i) + " ");
    			}
    			System.out.println();
    		}
    		System.out.println("程序结束");
    	}
    }
    

    题目十四:打印等腰三角形

    public class TestNestedFor5{
    	
    	public static void main(String[] args){
    		
    	/*
    		打印等腰三角形
    			
    		
    	*/
    	  for (int i = 1; i <= 5; i++){
                for (int j = 5; j >=i; j--) {
                    System.out.print(" ");
                }
                for (int j = 1; j <= i; j++) {
                    System.out.print("*");
                }
                for (int j = 1; j < i; j++) {
                    System.out.print("*");
                }
                System.out.println();
    	  }
    	  System.out.println("程序结束");
    	}
    }
    
  • 相关阅读:
    Delphi 10.1.2 berlin开发跨平台APP的几点经验
    (矫情)关于编程(能力第一,其它不要多想)
    Xdite:永葆热情的上瘾式学习法(套路王:每天总结自己,反省自己的作息规律,找到自己的幸运时间、幸运方法,倒霉时间、倒霉方法。幸运是与注意力挂钩的。重复才能让自己登峰造极,主动去掉运气部分来训练自己。游戏吸引自己的几个原因非常适合训练自己)good
    无锡美新赵阳:创业18年,一辈子做好一家企业(创业是一种生活方式;为了赚钱而创业,那是扯淡”。最重要的是做自己喜欢做的事情)
    Delphi中流对象的应用
    多样性的配置来源
    WeText项目的服务端
    集线器,交换机,路由器
    不知道的JavaScript
    IPerf网络测试工具
  • 原文地址:https://www.cnblogs.com/MRASdoubleZ/p/14361144.html
Copyright © 2011-2022 走看看