Java基础 循环语句 for while do.....while语句

Java基础

循环语句

1.for循环

  • 语法:
for(初始化语句;条件判断语句;条件控制语句){
		循环体语句;
	}
  • 执行流程
  1. 先执行初始化语句
  2. 然后执行条件判断语句
  3. 如果满足条件,则执行循环体语句
  4. 循环体语句执行完后,执行条件控制语句
根据上述标号:1234234234…这样循环下去 直到条件判断为false结束循环

注意:初始化语句只执行一次

例如

public static void main(String[] args) {
        for (int i = 1; i <=3 ; i++) {//先执行初始化语句 i=1; 然后判断i是否小于等于三 满足 则输出i的值
        //然后执行条件控制语句i++;此时i的值变成2 然后再判断再执行 直到不满足条件 结束循环为止
            System.out.println(i);//依次输出1 2 3
        }
    }

案例:打印55到80

public static void main(String[] args) {
        for (int i = 55; i <=80 ; i++) {
            System.out.println(i);
        }
    }

注意:循环中定义的变量,只在循环中起作用,循环结束,就从内存中消失了

2.while循环

  • 语法
初始化语句;
 while(条件判断语句) { 
    循环体语句;    
    条件控制语句;
     }

  • 执行流程
  1. 先执行初始化语句
  2. 然后判断条件
  3. 满足条件后执行循环体语句
  4. 然后执行条件控制语句
    按照标号:1234234234

注意:初始化语句只执行一次

例如

  public static void main(String[] args) {
       int i=1;
       while (i<=3){
           System.out.println(i);//依次输出1 2 3
           i++;
       }
    }

3.do…while();

  • 语法:
do{
循环体语句;
}while(条件判断语句);
  • 执行流程
  1. 先进do执行循环体语句
  2. 再进while判断条件
  3. 满足的话进do再执行,直到条件不满足,结束循环

例如

 public static void main(String[] args) {
       int i=1;
       do {
           System.out.println(i);//依次输出 1 2 3 
           i++;
       }while (i<=3);
    }

注意

  1. do…while循环不论条件满不满足 至少会执行一次;因为他从do开始,循环体会先执行(所以至少执行一次)
  2. 一般do…while循环很少用

4.死循环

  • 顾名思义,就是让循环停不下来,一直循环。
    当条件判断一直为true时,该循环就成为了死循环

例如

while类型

while(true){
//这就是典型的while死循环
}
//这个循环也是死循环
int i = 0;
while(i<10){
i--;
}

for 类型

for(;;){
//典型的for死循环格式  里面不写条件 初始化语句那些 他就会变成死循环
}
//或者条件永远为true
for(int i = 0; i < 10; i--){
//这个循环 i永远小于10 所以他就构成了死循环
}

do…while类型

do{
//这是do....while死循环的经典格式
}while(true);

跳出死循环需要用break关键字

  • break关键字 只能用于循环 还有switch语句里 用来结束循环或者switch语句

例如

int i = 0;
while(true){
	i++;
	if(i==1000){
	break;//当i加到1000时  会执行break关键字  就会结束这个循环
	}
}

与break对应的有一个continue关键字

  • continue是继续的意思,当循环时遇到continue关键字 ,则此次循环直接跳过,执行下一次循环

例如

for(int i = 1; i <= 3; i++){
	if(i==2){
		continue;	//当i==2时进入if语句执行continue 直接跳出此次循环 不输出2了 直接进行下一次循环了 所以没有输出2
	}
	System.out.println(i);//依次输出1 3
}

案例

  1. 求1-5之间的数据和
  2. 求1-10之间偶数和
  3. 求水仙花数 水仙花数是一个三位数 水仙花数的个位、十位、百位的数字立方和等于原数
  4. 统计1到100之间奇数的个数
  5. 每行打印两个水仙花数
  6. 世界高山峰是珠穆朗玛峰(8844.43米=8844430毫米), 假如我有一张足够大的纸,它的厚度是0.1毫米。 请问, 我折叠多少次,可以折成珠穆朗玛峰的高度? (while循环做)

可以思考着做一做(答案在下面)































求1-5之间的数据和
public class Demo {
    public static void main(String[] args) {
        int sum=0;//定义一个求和变量 赋值0 不影响加法运算
        for(int i = 1; i <= 5; i++){
          sum+=i;//sum=sum+i;
        }
        System.out.println(sum);//15
    }
}
求1-10之间偶数和
public class Demo {
    public static void main(String[] args) {
        int sum=0;//定义一个求和变量 赋值0 不影响加法运算
        for(int i = 1; i <= 10; i++){
            if (i%2==0){//判断i是否为偶数
                sum+=i;//sum=sum+i;
            }
        }
        System.out.println(sum);//30
    }
}
求水仙花数 水仙花数是一个三位数 水仙花数的个位、十位、百位的数字立方和等于原数
public class Demo {
    public static void main(String[] args) {
        for(int i = 100; i <= 999; i++){//因为是一个三位数  从最小的三位数100开始 到最大的三位数999结束
           int ge=i%10;//取三位数的个位
           int shi=i/10%10;//取十位
           int bai=i/100%10;//取百位
            if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){//满足条件的才是水仙花数
                System.out.println(i);// 153  370  371  407
            }
        }
    }
}

统计1到100之间奇数的个数
public class Demo {
    public static void main(String[] args) {
        int count=0;//定义一个变量用来计数
        for(int i = 1; i <= 100; i++){
            if(i%2!=0){//当对二取余余数不为零时则为奇数
                count++;
            }
        }
        System.out.println(count);//50
    }
}
每行打印两个水仙花数
public class Demo {
    public static void main(String[] args) {
        int count=0;//定义一个变量用来计数
        for(int i = 100; i <= 999; i++){//因为是一个三位数  从最小的三位数100开始 到最大的三位数999结束
           int ge=i%10;//取三位数的个位
           int shi=i/10%10;//取十位
           int bai=i/100%10;//取百位
            if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){//满足条件的才是水仙花数
                System.out.print(i+" ");// 去掉ln就不换行输出了
                count++;
                if (count%2==0){//当他为2的倍数时就输出一个换行
                    System.out.println();//输出一个换行
                }
            }
        }
    }
}

在这里插入图片描述

世界高山峰是珠穆朗玛峰(8844.43米=8844430毫米), 假如我有一张足够大的纸,它的厚度是0.1毫米。 请问, 我折叠多少次,可以折成珠穆朗玛峰的高度? (while循环做)
public class Demo {
    public static void main(String[] args) {
        double a=0.1;//定义一个变量用来代替纸张的厚度
        int count=0;//定义一个变量用来计数
     while (a<=8844430){//当a小于此高度时就折叠
         a*=2;//a=a*2
         count++;
     }
        System.out.println(count);//27次
    }
}

不懂得可以留言问哦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值