判断和循环

简介: 本节介绍Java中判断与循环结构,包括if语句的两种格式、switch语句及其JDK12新特性,以及for循环的基本语法。涵盖键盘录入、条件判断、case穿透、break与default使用等核心知识点,帮助掌握程序流程控制。

判断和循环

键盘录入(格式):

//键盘录入一个整数,表示身上的钱.
Scanner sc = new Scanner(System.in);
int money = sc.nextInt();

If语句的第一种格式

if(关系的表达式){
   
    语句体;
}

if的注意点:

  1. 大括号的开头可以另起一行书写, 但是建议写在第一行的末尾

  2. 在语句体中, 如果只有一句代码, 大括号可以省略不写,个人建议.

  3. 如果对一个布尔类型的变量进行判断, 不要建议直接用==号, 直接把变量写在小括号即可

QAQ: int a = 100; 属于是两个语句, 包括定义加赋值.

If语句的第二种格式

if(关系表达式){
   
    语句体1:
} else{
   
    语句体2:
}

执行流程:

  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体1
  3. 如果关系表达式的值为false就执行语句体2
  4. 继续执行后面的其他语句

switch语句格式

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

执行流程:

  1. 首先计算表达式的值.
  2. 依次和case后面的值进行比较.如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束.
  3. 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句.

格式说明

  1. 表达式:(将要匹配的值)取值为byte, short, int, char. JDK5以后可以是枚举,JDK7以后可以是String.
  2. case:后面跟的是要和表达式进行比较的值(被匹配的值).
  3. break:表示中断, 结束的意思, 用来结束switch语句.
  4. default:表示所有情况都不匹配的时候, 就执行该处的内容, 和if语句的else相似.
  5. case后面的值只能是字面量, 不能是变量
  6. case给出的值不允许重复.

字面量:数据在程序中的书写格式

default的位置和省略

  1. 位置: default不一定是写在最下面的,我们可以写在任意位置. 只不过习惯写在最下面
  2. 省略: default可以省略,语法不会有问题,但是不建议省略.

case穿透:

​ 就是语句体中没有写break导致的.

执行流程:

  1. 首先还是会拿着小括号中表达式的值跟下面每一个case进行匹配.
  2. 如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个switch语句.
  3. 如果没有发现break,那么程序会继续执行下一个case的语句,一直遇到break或者右大括号为止.

使用场景:

​ 如果多个case的语句体重复了,那么我们考虑利用case穿透去简化代码.

switch的新特性

JDK12以上才有的

正常写法:

//需求:选择输出
//1 2 3  一 二 三
int number = 1;
switch (number){
   
    case 1:
        System.out.println("一");
        break;
    case 2:
        System.out.println("二");
        break;
    case 3:
        System.out.println("三");
        break;
    default:
        System.out.println("没有这种选项");
        break;
}

新特性写法:

int number = 1;
switch (number){
   
    case 1 -> {
   
        System.out.println("一");
    }
    case 2 -> {
   
        System.out.println("二");
    }
    case 3 -> {
   
        System.out.println("三");
    }
    default -> {
   
        System.out.println("没有这种选项");
    }
}

如果case后面只有一条语句,则可以简写:

int number = 1;
switch (number){
   
    case 1 -> System.out.println("一");
    case 2 -> System.out.println("二");
    case 3 -> System.out.println("三");
    default -> ystem.out.println("没有这种选项");
}

switch和if第三种格式各自的使用场景

  • if的第三种格式: 一般用于对范围的判断
  • switch: 把有限个数据一一列举出来,让我们任选其一

for循环

/*for(初始化语句; 条件判断语句; 条件控制语句){
  循环体语句;
  } */
for(int i = 1; i <= 10; i++){
   
    System.out.println("HelloWorld");
}

==

相关文章
|
6月前
|
人工智能 监控 供应链
逻辑架构解析:AI指挥官如何赋能调度官实现任务闭环?
2026年AI迈入“系统协同”新纪元,“指挥官”(定战略、解意图)与“调度官”(管执行、编资源)双引擎架构成为生产力核心。二者分工协作,实现复杂任务的自主规划、动态调度与闭环交付,重塑产业逻辑与职场价值。
335 2
|
7月前
|
Arthas 运维 监控
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
679 9
|
Java 编译器 数据库连接
|
存储 Java Spring
Spring Boot中的表单处理
Spring Boot中的表单处理
|
JavaScript Java API
spring boot使用异步多线程
一文讲清楚spring boot如何结合异步多线程实现文件的导出这类耗时间的操作优化以及常用的场景,了解异步思想
498 0
spring boot使用异步多线程
|
API
什么是接口幂等
什么是接口幂等
687 0
Windows 命令提示符(CMD)操作(一):文件和目录管理
Windows 命令提示符(CMD)操作(一):文件和目录管理
|
数据安全/隐私保护
URL编码解析方式-特殊字符加密和解密
URL编码解析方式-特殊字符加密和解密
827 0
|
缓存 安全 Java
什么是线程安全?如何保证线程安全?Java 中保证线程安全的方法有哪些?【重要】
什么是线程安全?如何保证线程安全?Java 中保证线程安全的方法有哪些?【重要】
3776 0

热门文章

最新文章