认识JAVA语言(一)扩充

Java语言的程序控制结构 (2.5)

        在Java语言中,程序的流程控制对于代码执行的逻辑有着至关重要的作用。通过条件控制和循环控制,程序可以做出决策、重复执行任务,并在合适的时间退出。本章将详细介绍这些结构,并通过代码示例和表格来总结和梳理知识点。

条件控制结构 (2.5.1)

if语句 (2.5.1.1)

  • 基本结构 (2.5.1.1.1)

    • 一个单独的if语句用来执行基于布尔条件的代码。如果条件为真(true),则执行大括号中的代码块,否则跳过这段代码。
    • 示例
    if (temperature > 30) {
        System.out.println("It's a hot day.");
    }

        在这里,如果temperature(温度)变量大于30,则输出一条消息表明今天天气热。

条件执行
temperature > 30输出"It's a hot day."
  • if-else结构 (2.5.1.1.2)

    • 一个if-else结构提供了两条执行路径:一条为条件为真时的路径,另一条为条件为假时的路径。
    • 示例
    if (score >= 60) {
        System.out.println("Passed");
    } else {
        System.out.println("Failed");
    }

        这个代码块中,score(得分)是评估的条件。如果分数大于或等于60,输出“Passed”,否则输出“Failed”。

条件结果
score >= 60"Passed"
否则"Failed"
  • 嵌套if语句 (2.5.1.1.3)

    • 嵌套if语句允许在另一个if或else代码块中嵌入更多的if或else语句,这对于进行更复杂的条件逻辑判断非常有用。
    • 示例
    if (user.isLoggedIn()) {
        if (user.hasPermission("admin")) {
            System.out.println("Show admin panel");
        } else {
            System.out.println("Show regular panel");
        }
    }

        在这个例子中,第一个if检查用户是否登录了。如果登录了,继续检查用户是否有管理员权限。如果有,则显示管理员面板,否则显示常规面板。

  • else if链 (2.5.1.1.4)

    • else-if语句链允许一个接一个地根据多个条件进行检查,每个条件都会按顺序进行测试,直到找到第一个为真的条件。
    • 示例
    if (grade >= 90) {
        System.out.println("Grade A");
    } else if (grade >= 80) {
        System.out.println("Grade B");
    } else if (grade >= 70) {
        System.out.println("Grade C");
    } else {
        System.out.println("Fail");
    }

        在这里,grade(成绩)变量根据数值的不同被分配到不同的等级,或者如果成绩低于70,输出“Fail”。

Grade 范围输出
>= 90"Grade A"
>= 80"Grade B"
>= 70"Grade C"
< 70"Fail"

switch语句 (2.5.1.2)

  • switch-case结构
    • 一个switch语句基于单个变量的值来选择不同的代码执行路径。相对于if-else链,switch语句在有大量明确值需要比对时更加清晰和方便。
    • 示例
    switch (dayOfWeek) {
        case 1:
            System.out.println("Monday");
            break;
        case 2:
            System.out.println("Tuesday");
            break;
        // ...更多的cases
        default:
            System.out.println("Unknown day");
            break;
    }

        上述代码基于dayOfWeek(星期几)的值输出不同的日子名称。如果dayOfWeek不是任何特定的case中的值,将执行default块,输出“Unknown day”。

Day of Week输出
1"Monday"
2"Tuesday"
......
Default"Unknown day"

循环控制结构 (2.5.2)

for循环 (2.5.2.1)

  • for结构
    • for循环是当你明确知道循环应当执行多少次时使用的。它会在一组预定义的次数内重复执行代码块。
    • 示例
    for (int i = 0; i < 5; i++) {
        System.out.println("This is loop iteration " + i);
    }

        这段代码会重复五次循环,输出从0到4的迭代数。

while循环 (2.5.2.2)

  • while结构
    • while循环会在给定的条件为真时重复执行代码块,循环会一直进行直到条件变为假。
    • 示例
    int count = 0;
    while (count < 5) {
        System.out.println("Count is " + count);
        count++;
    }

        这将打印出“Count is”后跟从0到4的数字,因为循环每次迭代末端都将count变量增加1。

do-while循环 (2.5.2.3)

  • do-while结构
    • do-while循环至少会执行一次代码块,无论循环条件最初是否为真,之后如果条件为真,会继续执行。
    • 示例
    int count = 0;
    do {
        System.out.println("Count is " + count);
        count++;
    } while (count < 5);

        即使条件初始为假,代码块中的代码也会至少执行一次。这在一些需要至少执行一次操作的情境下非常有用。

控制转移语句 (2.5.3)

break语句 (2.5.3.1)

  • break结构
    • break语句会立即终止最内层的循环或switch语句,跳出并继续执行之后的代码。
    • 示例
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break;
        }
        System.out.println(i);
    }

        当循环变量i达到5时,循环会终止,并且不会打印5或5之后的数字。

continue语句 (2.5.3.2)

  • continue结构
    • continue语句跳过当前循环的剩余部分,并立即开始下一次的迭代。
    • 示例
    for (int i = 0; i < 10; i++) {
        if (i % 2 == 0) {
            continue;
        }
        System.out.println(i);
    }

        这会打印出所有小于10的奇数,因为每当i是偶数时循环就会跳过当前迭代。

return语句 (2.5.3.3)

  • return结构
    • return语句立即结束当前方法的执行,如果方法需要返回值,则return语句也会返回一个值。
    • 示例
    public int square(int num) {
        return num * num;
    }

        这里的square方法会接收一个整数参数num,并返回这个整数的平方。return语句后紧跟的表达式(在这个例子中是num * num)的值将会被返回给方法的调用者。

附: 简易的学生成绩评级系统:

package demo;

import java.util.Scanner;

public class StudentGradeSystem {
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 通过循环结构接收用户输入直到用户选择退出
        while (true) {
            System.out.println("请输入学生的成绩(输入-1退出程序):");
            int grade = scanner.nextInt();

            // 使用 continue 控制转移语句跳过无效的输入
            if (grade < -1 || grade > 100) {
                System.out.println("无效的输入,请输入0-100之间的数值。");
                continue;
            }

            // 使用 break 控制转移语句退出循环,结束程序
            if (grade == -1) {
                System.out.println("退出程序。");
                break;
            }
            
            // 通过 if-else 控制结构决定学生成绩的评级
            if (grade >= 90) {
                System.out.println("Grade A");
            } else if (grade >= 80) {
                System.out.println("Grade B");
            } else if (grade >= 70) {
                System.out.println("Grade C");
            } else if (grade >= 60) {
                System.out.println("Grade D");
            } else {
                System.out.println("Fail");
            }
        }
        
        // 退出while循环后关闭scanner
        scanner.close();
    }
}

ad55a6780c6346b2b3413f7136e34e2a.png

 

 

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值