Java控制结构

本文详细介绍了Java编程中的控制结构,包括条件语句(if,else,switch)、循环语句(for,while,do-while),以及如何使用break和continue进行循环控制。以实际例子演示了如何判断闰年和处理不同情况下的代码分支。
摘要由CSDN通过智能技术生成

控制结构

​ 在Java中,控制语句用于控制程序的执行流程,主要包括条件语句(if, else, switch)和循环语句(for, while, do-while)。这些语句允许程序根据不同的条件执行不同的代码。

分支控制语句

​ 分支控制语句允许程序在满足特定条件时执行不同的代码路径。

  • if语句:最基本的条件语句,用于在条件为真时执行代码块。
if (条件) {
    // 当条件为真是执行的代码
}

简单例子:使用if语句进行判断。

public class Test {
    public static void main(String[] args){
        int i = 18;
        if (i >= 18) {
            System.out.println("恭喜你!已成年!");
        }
    }
}

Test.main(null)
  • if-else 语句:在条件为假时提供另一种执行路径。
if (条件) {
    // 当条件为真时执行的代码
}
else {
    //当条件为假时执行的代码
}

也可以是多个if-else语句连着用

public class Test{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的年龄:");
        int i = scanner.nextInt();
        if (i >= 18) {
            System.out.println("你是成年人!");
        }
        else {
            System.out.println("你是未成年人!");
        }
    }
}
  • **switch语句:**用于基于变量的值选择执行不同代码的条件选择。
switch (变量) {
    case1:
        // 当变量值等于1时执行的代码块
        break;
    case2:
        // 当变量值等于2时执行的代码块
        break;
    // 更多case……
    default:
        // 如果没有匹配的case,执行这里的代码
        break;
}

使用switch来实现给学生分等级:

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        int i = scanner.nextInt();
        char g;
        if (i > 90) {
            g = 'A';
        } else if (i > 80) {
            g = 'B';
        } else if (i > 70) {
            g = 'C';
        } else if (i > 60) {
            g = 'D';
        } else {
            g = 'E';
        }
        switch (g) {
            case 'A':
                System.out.println("优秀");
                break;
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("中等");
                break;
            case 'D':
                System.out.println("及格");
                break;
            case 'E':
                System.out.println("不及格");
                break;
            default:
                System.out.println("无效成绩");
                break;
        }
    }
}

上面的代码导入了java.util.Scanner库。这是Java语言中用于读取用户输入的库。通过导入这个库,我们可以创建一个Scanner对象,然后使用它来读取用户输入的成绩值。

  • 循环控制语句

循环控制语句允许程序重复执行一段代码,直到满足某个条件。

  • for循环:在已知循环次数的情况下使用。
for (初始化表达式; 循环条件; 更新表达式) {
    // 循环体
}
  • while循环:在循环次数未知,但有明确退出条件时使用。
while (循环条件) {
    // 循环体
}
  • do- while循环:至少执行一次循环体,然后根据条件决定是否继续循环。
do {
    //循环体
}
while (循环条件) ;

下面是各种循环循环的例子:

public class Test{
    public static void main(String[] args){
        int i = 0;
        System.out.println("这是for循环");
        for (i=0; i <= 10; i++) {
            System.out.print(i);
        }
        System.out.println("这是while循环");
        while (i <= 20){
        System.out.print(i);
        i += 1;
        }
        System.out.println("这是do while 循环");
        do{
            System.out.print(i);
            i += 1;
        }
        while(i <= 25);
    }
}
  • 循环控制语句的特殊用法

    • break语句: 用于立即退出循环(for, while, do-while, switch)。
      // 在循环中使用break
      if (需要退出循环){
          break;
      }
    
    • continue语句: 用于跳过当前循环的剩余部分,直接开始下一个循环。
     // 在循环中使用continue
     if (需要跳过本次循环) {
         continue;
     }
    
    • label(标签): 用于标识循环,与break和continue结合使用,可以跳出多层或跳过特定循环。

    • outerLoop: for (int i = 0; i < 10; i++){
          innerLoop: for(int j = 0; j < 10: j++)
              // 使用标签
              if (需要退出外层循环) {
                  break outerLoop;
              // 使用标签
               if(需要跳出内层循环){
                   continue innerLoop
               }
              }
      }
      

例子:判断闰年

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = scanner.nextInt();
        if (isLeapYear(year)) {
            System.out.println(year + "年是闰年。");
        } else {
            System.out.println(year + "年不是闰年。");
        }
    }

    public static boolean isLeapYear(int year) {
        // 判断闰年的逻辑
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
            return true;
        } else {
            return false;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值