JavaSE06_2-流程控制语句_循环结构

  1. 循环结构_for

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

    格式:

    for(初始化语句;条件判断语句;条件控制语句){
    
    ​		循环体语句;
    
    ​	}
    

    执行流程:

    1. 执行初始化语句

    2. 执行条件判断语句,看结果是true还是false

      如结果为false,循环结束

      如结果为true,循环继续

    3. 执行循环体语句

    4. 执行条件控制语句

    5. 回到2继续

    //1.输出1-5
    for(int i=1; i<=5; i++){
    	System.out.println(i);
    }
    

    循环结束时i=6。

    水仙花数实例

    int count = 0;//用于储存统计个数
    		//1.求100到999的水仙花数
    		
    	for(int i = 100; i<=999; i++){
    		int a = i % 10;//个位
    		int b = i /10 % 10;//十位
    		int c = i /10 /10% 10;//百位
            
    		int sum = a*a*a + b*b*b + c*c*c;
            //水仙花数上一个三位数,水仙花数的个位、十位、百位的数字立方和等于原数
            
    		if( sum == i){
    			System.out.println(i+"是水仙花数");
    			count ++;
    		}
    	}
    	System.out.println("100~999之间一共有"+count+"个水仙花数");
    

    求任意数字的指定位上的数值:

    ​ 先使用整除操作将要求的数字移动到个位上,再使用取余操作取出最后一位上的值。

    123456789 先整除10000得到12345,再对10取余得到5

  2. 循环结构_while

    • 基本格式
    while(条件判断语句){
        循环体语句;
    }
    
    • 完整格式
    初始化语句;
    while(条件判断语句){
        循环体语句;
        条件控制语句;
    }
    

    执行流程:

    1. 执行初始化语句

    2. 执行条件判断语句,看结果是true还是false

      如结果为false,循环结束

      如结果为true,循环继续

    3. 执行循环体语句

    4. 执行条件控制语句

    5. 回到2继续

    珠穆朗玛峰实例

    public class WhileDemo02{
    	public static void main(String[] args){
    		double paper = 0.1;
    		int count = 0; //存储折叠次数
    		
    		//1.珠穆朗玛峰的高度为8844430毫米,纸的厚度为0.1毫米,折叠一次翻倍
    		while(paper <= 8844430){
    			paper *= 2;
    			count++;
    		}
    		
    		System.out.println("需要折叠"+count+"次");
    		//需要超过8844430,用的paper和8844430做判断
    		
    	}
    }
    
  3. 循环结构_do…while

    • 基本格式
    do{
        循环体语句;
    }while(条件判断语句);
    
    • 完整格式
    初始化语句;
    do{
        循环体语句;
        条件控制语句;
    }while(条件判断语句);
    

    执行流程

    1. 执行初始化语句

    2. 执行循环语句

    3. 执行条件控制语句

    4. 执行条件判断语句,看结果是true还是false

      如结果为false,循环结束

      如结果为true,循环继续

    5. 回到2继续

  4. 三种循环的区别

    三种循环的区别:

    • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
    • do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

    for和while的区别

    • 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
    • 条件控制语句所控制的自增变量,对while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

    死循环格式:

    ​ for(;; ){}

    ​ while(true){}

    ​ do{}while(true);

    while的死循环格式是最常用的

    命令提示符窗口中Ctrl+C可以结束死循环

  5. 跳转控制语句break、continue

    • continue:用在循环中,给予条件控制,跳过某次循环体内容的执行,继续下一次的执行。
    • break:用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。
  6. 循环嵌套

    外循环执行一次,内循环执行一轮。

    任何语句对外都可以看成是一句话,一句代码。

    分支语句中包含分支语句称为分支嵌套

    循环语句中包含循环语句称为循环嵌套

    九九乘法表实例

    for(int a = 1; a <= 9; a++){
    			
    	for(int b = 1;b <= a;b++){ //b不超过a
    		System.out.print(a+"×"+b+"="+(a*b)+"\t");
    	}
    	System.out.print("\n"); //换行
    }
    
    //通过while实现九九乘法表
    int i = 1;
    
            while (i <= 9) {
    
                int j = 1;//每次循环结束后需要重置;for循环嵌套有个int j=1;每次会初始化,while需要手动
    
                while (j <= 9 && j <= i) {
    
                    System.out.print(j + "*" + i + "=" + (i * j) + "\t");
                    j++;
                }
    
                i++;
                System.out.println();
            }
    
    

    打印三角形

    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 k = 1; k < i; k++) {
            System.out.print("-");//第二行开始的正三角形
        }
        System.out.println();
    }
    
  7. 增强for循环

    java5引入了一种主要用于数据集合的增强型for循环。

    格式:

    for(声明语句 :表达式){
        //代码句子;
    }
    
    • 声明语句:声明新的变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语块,其值与此时数组元素的值相等。
    • 表达式:表达式是要访问的数组名,或者是返回值为数组的方式。

    实际案例

    int[] number = {10,20,30,40,50};
    
    //传统遍历
    for (int i = 0; i < number.length; i++) {
        System.out.print(number[i]+"\t");
    }
    
    System.out.println();//换行
    //增强fou遍历
    for (int x : number) {
        System.out.print(x+"\t");
    }
    
  8. Random

    作用:用于产生一个随机数

    使用步骤:

    1. 导包

      import java.util.Random;
      

      导包的动作必须出现在类定义的上面

    2. 创建对象

      Random r = new Random();
      

      上面这个格式里面,r上变量名,可以变,其他的都不允许变。

    3. 获取随机数

      int number = r.nextInt(10);//获取数据的范围:[0,10) 包括0,不包括10
      

      上面这个格式里面,number上变量名,可以变,数字10可以变,其他的都不允许变

      猜数字实例

      //1.导包
      import java.util.Random;
      import java.util.Scanner;
      public class RandomDemo{
      	public static void main(String[] args){
      		//创建对象
      		Random r = new Random();
      		Scanner scanner = new Scanner(System.in);
      		
      		//生成一个0~100的随机数
      		int flag = r.nextInt(100)+1;
      		
      		//提示
      		System.out.println("请属于一个0~100的整数");
      		
      		while(true){ //死循环
      			int number = scanner.nextInt();//接收输入的数据
      			if(number > flag){
      				System.out.println("很遗憾,你猜的数字太大了,请重新输入!");
      			}else if(number < flag){
      				System.out.println("很遗憾,你猜的数字太小了,请重新输入!");
      			}else{
      				System.out.println("恭喜你,猜中了!");
      				break;//猜中结束
      			}
      		}
      		
      	}
      }
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值