欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 Java学习之路-day-03 switch&循环语句

程序员文章站 2022-05-04 11:43:48
Java switch&循环语句每日一句1 switch语句1.1 switch语句结构2 for循环2.1 for循环结构3 while循环3.1 while结构4 循环细节4.1 do...while循环结构4.2 三种循环的区别4.3 跳转控制语句4.4 循环嵌套5 Random5.1 Random产生随机数5.2 Random练习-猜数字每日一句业精于勤,荒于嬉;行成于思,毁于随。评价:学业由于勤奋而精通,但它却荒废在嬉笑玩耍中,事情由于反复思考而成功,但它却能毁灭于随大流。1 sw...

每日一句

业精于勤,荒于嬉;行成于思,毁于随。

评价:学业由于勤奋而精通,但它却荒废在嬉笑玩耍中,事情由于反复思考而成功,但它却能毁灭于随大流。

1 switch语句

1.1 switch语句结构

switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}

格式说明
表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
case:后面跟的是要和表达式进行比较的值。
break:表示中断,结束的意思,用来结束switch语句。
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结
束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

举例:
需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出

import java.util.Scanner;

public class SwitchDemo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入月份(1-12): ");
        int month = sc.nextInt();
        // case 穿透
        switch (month){
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("输入月份有误!");
                break;
        }
    }
}

注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。

2 for循环

2.1 for循环结构

循环:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。

for循环格式

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

格式解释
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去

执行流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续

荐
                                                        Java学习之路-day-03 switch&循环语句
举例:
求偶数和
需求:求1-100之间的偶数和,并把求和结果在控制台输出

public class ForDemo03 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                sum += i;
            }
        }
        System.out.println("1-100之间的偶数和: " + sum);
    }
}

水仙花数:一个三位数,个位,十位,百位的数字立方和等于原数。在控制台输出所有水仙花数

public class ForDemo04 {
    public static void main(String[] args) {
        // 遍历所有三位数
        for (int i = 100; i < 1000; i++){
            int a = i / 100; // 百位
            int b = (i / 10) % 10;  // 十位
            int c = i % 10;     // 个位

            if (a*a*a + b*b*b + c*c*c == i)
            {
                System.out.println(i);
            }
        }
    }
}

3 while循环

3.1 while结构

while循环完整格式

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

while循环执行流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续

举例:
需求:珠穆朗玛峰8844.43米=8844430毫米,假如我有一张足够大的纸,它的厚度是0.1毫米,请问折叠多少次,可以折成珠穆朗玛峰高度

public class WhileDemo01 {
    public static void main(String[] args) {
        int count = 0;  // 定义一个计数器count
        double paper = 0.1;     // 纸张厚度
        int zf = 8844430;   // 珠穆朗玛峰高度
        while (paper <= zf){
            paper *= 2;
            count++;
        }
        // 打印结果
        System.out.println("需要折叠" + count + "次.");
    }
}

4 循环细节

4.1 do…while循环结构

完整格式

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

执行流程
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续
荐
                                                        Java学习之路-day-03 switch&循环语句
举例:
使用do while循环实现在控制台输出5次HelloWorld

public class DoWhileDemo {
    public static void main(String[] args) {
        // 使用do while循环实现在控制台输出5次HelloWorld
        int i = 1;
        do {
            System.out.println("HelloWorld");
            i++;
        } while (i <= 5);
    }
}

4.2 三种循环的区别

三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)

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

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

死循环(无限循环)的三种格式

  1. for(; ; ){}
  2. while(true){}
  3. do {} while(true);

4.3 跳转控制语句

continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行

break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环

举例:

public class ControlDemo {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++){
            if (i % 2 == 0){
//                continue;
                break;
            }
            System.out.println(i);
        }
    }
}

4.4 循环嵌套

循环嵌套概述:在循环中,继续定义循环。任何语句对外都可以看成是一句话,一句代码。分支语句中包含分支语句称为分支嵌套,循环语句中包含循环语句称为循环嵌套。

举例:
需求:在控制台输出一天的小时和分钟

public class ForForDemo {
    public static void main(String[] args) {
        for (int hour = 0; hour < 24; hour++){
            for (int minute = 0; minute < 60; minute++){
                System.out.println(hour + "时" + minute + "分");
            }
        }
    }
}

5 Random

5.1 Random产生随机数

概述:
Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能。

使用步骤:
(1) 导入包

import java.util.Random;

(2) 创建对象

Random r = new Random();

(3) 产生随机数

int num = r.nextInt(10);

解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19

举例:

import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
//创建对象
Random r = new Random();
//用循环获取10个随机数
for(int i=0; i<10; i++) {
//获取随机数
int number = r.nextInt(10);
System.out.println("number:" + number);
}
//需求:获取一个1-100之间的随机数
int x = r.nextInt(100) + 1;
System.out.println(x);
}
}

5.2 Random练习-猜数字

需求:
程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
当猜错的时候根据不同情况给出相应的提示
A. 如果猜的数字比真实数字大,提示你猜的数据大了
B. 如果猜的数字比真实数字小,提示你猜的数据小了
C. 如果猜的数字与真实数字相等,提示恭喜你猜中了

import java.util.Scanner;
import java.util.Random;

public class GuessNumber {
    public static void main(String[] args) {
        Random r = new Random();
        // // 生成一个要猜的数字,使用随机数
        int number = r.nextInt(100) + 1;    

        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入你要猜的数字: ");
            int guessNumber = sc.nextInt();
            if (guessNumber > number) {
                System.out.println("你猜的数字" + guessNumber + "大了");
            } else if (guessNumber < number) {
                System.out.println("你猜的数字" + guessNumber + "小了");
            } else {
                System.out.println("恭喜你猜中了!");
                break;  // 猜中了就结束循环
            }
        }
    }
}

本文地址:https://blog.csdn.net/weixin_43441789/article/details/107360790