switch case以及循环语句while,do while,for的使用

switch case语句

  • switch中的表达式只能放byte short int char String
  • 当多个case语句的输出结果一样时,可以合并到最后一个case语句
  • case击穿/case穿透问题:某一case语句中未写入break语句而导致代码会继续执行下一case语句
  • if和switch比较: 所有switch能实现的,if都可以实现;反之if能实现的,switch不一定能实现。 switch只能做等值判断,if可以做区间判断
import java.util.Scanner;

public class Switch {
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入今天周几?");
        int i = scanner.nextInt();
        switch (i){
    
    
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("干就完事了");
                break;
            case 6:
                System.out.println("好好睡一觉!");
                break;
            case 7:
                System.out.println("糟糕,假期快没了");
                break;
            default:
                System.out.println("你输入的是个啥???");
                break;
        }
    }
}

循环语句

while循环

while( 循环条件 ) {
    
    
  //循环内容
}

只要循环条件为 true,循环就会一直执行下去。

do while循环

do {
    
    
       //代码语句
}while(循环条件);

循环条件在循环体的后面,所以语句块在检测循环条件之前已经执行了。 如果循环条件的值为 true,则语句块一直执行,直到循环条件的值为 false。

while和do while的区别

do…while 循环和 while 循环相似,不同的是,当初始值不满足循环条件的时候,while 循环一次都不会操作,do While循环不管在什么情况下都至少执行一次。

for循环

for(起始值; 循环条件; 循环迭代) {
    
    
    //代码语句
}

for循环常见的问题

  1. 没有起始值
  2. 没有循环条件
  3. 没有循环迭代 (初始值满足循环条件,会陷入死循环;若不满足,程序无法运行)
  4. 无条件,会死循环

break continue语句

break 特点

  • break语句用于终止某个循环,使程序跳到循环块外的下一条语句
  • 在循环中位于break后的语句将不再执行
  • 不仅可以用在循环中,也可以用在其他语句中

continue

  • continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
  • 在 for 循环中,continue语句使程序立即跳转到更新语句。
  • 在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
    例题

求1-100之间个位数不为3的数的累加和。
题目描述:求整数1~100的累加值,但要求跳过所有个位为3的数。
题目提示:使用%判个位数是否为3,用continue实现

public class T02 {
    
    
    public static void main(String[] args) {
    
    
        int sum=0;
        for (int i=0;i<=100;i++){
    
    
            if (i%10==3){
    
    
                continue;
            }else {
    
    
                sum=sum+i;
            }
        }
        System.out.println("100以内个位数不为3的累加和为"+sum);
    }
}

运行结果
在这里插入图片描述

题目描述: 求从1开始第35个能被7和3整除的整数
题目提示: 通过变量记录是第几个可以被3和7整除的数

public class T04 {
    
    
    public static void main(String[] args) {
    
    
        int n=0;
        for (int i=1;i<1500;i++){
    
    
            if (i%7==0&&i%3==0){
    
    
                n++;
                while (n==35){
    
    
                    System.out.println(i+"能被7和3整除,"+i+"是第"+n+"个变量");
                    break;
                }
            }
        }
    }
}

运行结果
在这里插入图片描述

一张纸0.001米,对折多少次能超过珠穆朗玛峰的高度?

public class T12 {
    
    
    public static void main(String[] args) {
    
    
        double i=0.001;
        int t=0;
        while (i<8848){
    
    
            t++;
            i=i*2;
        }
        System.out.println("对折"+t+"次超过珠穆朗玛峰");
    }
}

运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43928469/article/details/109783387