2021-07-11-循环语句用法和实例

循环语句

1.for循环

1.1 for循环格式
public class TestFor01{
    /*
      格式:
      for(初始化语句;条件判读语句;条件控制语句){
          循环体语句;
      }
      
      执行流程:
      1.执行初始化语句
      2.执行条件判读语句,看其结果是真还是假
      3.1是真则执行循环体语句,然后执行条件控制语句,然后回到第二步
      3.2是假则结束循环
    
    
    */
    public static void main(String[] args){
		int sum = 0;
        for(int a=1;a<=100;a++){
            if(a%2==0){
				sum=sum+a;
			}
        }
		System.out.println(sum);
    }
}
1.2 for循环实例(一行输出两个水仙花数)
public class TestFor02{
	public static void main(String[] args){
		int count=0;
		for(int a =100;a<=999;a++){
			int b=a/100;
			int c=a/10%10;
			int d=a%10%10;
			if(b*b*b+c*c*c+d*d*d==a){
				System.out.print(a+" ");//print不自动换行,+后拼接了一个空格
				count++;//记录输出的水仙花个数
				if(count%2==0){
					System.out.println();//判断每一行水仙花个数是否达到两个,达到了换行
				}
			}
		}
	}
}

在这里插入图片描述


2.while 循环

2.1 while循环格式详解
public class TestWhile{
    /*
    基本格式:
    while(条件判断语句){
    循环体语句;
    }
    完整格式:
    初始化语句;
    while(条件判断语句){
    循环体语句;
    条件控制语句;
    
    执行流程:
    1.执行初始化语句
    2.执行条件判断语句
      2.1 如果结果为真执行向下执行循环体语句和条件控制语句
      2.1.1 执行条件控制语句
      2.1.2 回到2步骤
      2.2 如果结果为假循环结束
    
    注意事项:
	1.执行次数不明确用while循环比较好
    
    */
    public static void main(String[]args){
        int a = 1;
        while(a<=100){
            System.out.print(a+" ");
            if(a%10==0){
                System.out.println();	
            }
            a++;
        }
		int count = 0;
		double b=0.1;
		long c = 8844430;
		while(b<c){
			b*=2;
			count++;
		}
		System.out.println(count);
    }
}

3.do…while循环

3.1 do…while循环格式详解
public class TestDoWhile{
    /*
    基本格式:
    do{
       循环体语句;
    }while(条件判断语句);
    
    完整格式:
    初始化语句;
    do{
       循环体语句;
       条件控制语句;
    }while(条件判断语句);
    
    执行流程:
    1.执行初始化语句
    2.执行循环体语句
    3.执行条件控制语句
    4.执行条件判断语句
      4.1 如果结果为真则回到步骤2
      4.2 如果结果为假则循环结束
      
    注意事项:
    1.do循环无论结果为何都会先执行依次循环体语句
    
    */
    public static void main(String[] args){
        
        
    }
    
}




4.三种循环的区别

4.1 for循环、while循环和do循环的区别

for循环和while循环都是先判断后执行循环体,而do循环是先执行循环体后判断

4.2 for循环和while循环的区别

for循环的初始化语句在for循环的内部,for循环执行完毕之后就会释放内存,初始化语句中定义的变脸会直接消失,在for循环之外会无法访问。采用这种方法可以节省变量名。

while循环的初始化语句在while循环语句的外部,不归属其语法结构,其定义的变量在while循环结束之后可以继续使用。

4.3 三种循环的使用场景
  • 明确循环次数推荐使用for循环
  • 不明确循环次数推荐使用while循环
  • do循环很少使用,但要知道这个循环的用法

5.死循环

5.1 三种循环语句的死循环格式
for循环的死循环格式:
    for(;;){}
while循环的死循环格式://while循环的死循环用法最常用,命令提示符窗口ctrl+c可以结束死循环
    while(true){}
do循环的死循环格式:
    do{}while(true);


6.跳转控制语句

6.1 continue关键字,跳过某次循环
for(int a=1;a<=5;a++){
    if(a==3){
        continue;//当a=3时,不在控制台输出
    }
    Ststem.out.println(a);
}
6.2 break关键字,达到某种条件后跳出循环
for(int a=1;a<=5;a++){
    if(a==3){
        break;//当a=3时,结束for循环,等于循环多了一个结束条件
    }
    Ststem.out.println(a);
}
6.3 标号

continue和break只能跳出自己所在的那一层循环,如果想跳出或跳过指定的循环可以使用标号。

格式:
    标号名:while(true){
    switch(表达式){
            case 常量;
               break 标号名;
            //此处break跳出的不是switch语句,而是指定跳出对应标号的那一层循环或者关系
    }
}

7.综合使用案例

要求:制定每周的减肥计划,用户可以多次查询对应天数的计划,直到输入0后程序结束

分析:

1.用户制定每周的减肥计划,键盘录入语句可以实现,但是以目前的知识,每次程序结束后无法保存,故需要使用switch语句在后台定义好。

2.正常程序运行完毕之后会自动结束,想要继续运行需要重新执行程序,想达到用户可以多次查询而不需要多次执行程序时,可以用死循环将程序保持在查询键入查询处。

3.当用户输入0时可以跳出死循环,可以使用标号定位到死循环处,然后使用break跳出。

import java.util.Scanner;
public class ReduceWeight{
    public static void main(String[] args){
        System.out.println("请输入要查询的星期数");
        System.out.println("退出请输入0");
        Scanner sc = new Scanner(System.in);
		tuichu:while(true){
        int a = sc.nextInt();

		switch(a){
                case 0:
                break tuichu;
                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;
            default:
                System.out.println("错误");
                break;
        }
		}
         } 
}



8.random

格式:
import java.util.Random;//Random是Java中已经写好的类,可以直接调用
public class TestRandom{
    public static void main(String[] args){
        Random r =new Random();
        int a =r.nextInt(10);//()中是随机数的范围,如括号里是10,就是在0-9中获取随机数
                             //若想不从零开始获取数据,可以直接在new Random()后面直接运算
                             //例如:int a = r.nextInt(10)+1;取值范围是1到11
        System.out.print(a);
        
    }
}


9.猜数字案例实战

要求:程序自动生成一个1-100之间的数字,人使用程序实现猜出这个数字是多少

分析:

1.自动生成一个数字,需要使用随机数的类Random来生成随机数

2.人使用程序猜数字需要用到键盘录入Scanner类

3.想要猜中数字,需要判断键盘录入的数字和随机生成的数字是否一致、并且给出反馈猜的数字比实际数字大了还是小了,所以需要用到if语句

4.猜数字可能需要猜多次,需要采用死循环语句,因为不知道几次可以猜中,所以需要用到while循环

import java.util.Random;
import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        Random r = new Random();
        int a = r.nextInt(100)+1;
        xunhuan1:while(true){
            Scanner sr = new Scanner(System.in);
            System.out.println("请输入");
            int b = sr.nextInt();
            if(b>a){
                System.out.println("猜大了");
            }else if(b<a){
                System.out.println("猜小了");
            }else{
                System.out.println("猜中啦~");
                break xunhuan1;
            }
            
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值