Java的判断和循环语句-你真的了解吗?

258 阅读8分钟

背景

在编程的广袤天地里,判断语句和循环语句宛如两颗璀璨的星辰,照亮了我们构建复杂程序逻辑的道路。在 Java 编程中,判断语句和循环语句处于核心地位。它们是构建程序逻辑的基本构建块,就像建筑中的砖块和钢梁一样。因此学好判断与循环,能够成为我们Java路上的基石。

目录

一.判断语句

(1)if条件语句

(2)switch条件语句

(3)注意事项

二.循环语句

(1)for循环

(2)while循环

(3)do...while循环

一、判断语句(if、switch)

在java中:判断语句,作为程序流程控制的关键要素,其核心作用在于依据给定的条件表达式的真假结果,精准地决定程序执行的路径。

分类:判断语句分为if语句和switch语句

1.if条件语句:

含义:if语句是一种基于条件判断的控制流语句。它的核心含义是根据一个或多个条件表达式的真假来决定是否执行特定的代码块。

  • (1)if 语句

格式:if (条件表达式) { 执行语句块; }。这是最基本的判断语句,用于在条件满足(条件表达式返回true)时执行特定的语句块。例如:

     int num = 10;
     if (num > 5) {
         System.out.println("这个数大于5");
     }
  • (2)if - else 语句

格式:if (条件表达式) { 执行语句块1; } else { 执行语句块2; }。当条件表达式为true时执行语句块 1,为false时执行语句块 2。例如:

     int number = 7;
     if (number % 2 == 0) {
         System.out.println("这个数是偶数");
     } else {
         System.out.println("这个数是奇数");
     }
  • (3)if - else if - else 语句

格式:if (条件表达式1) { 执行语句块1; } else if (条件表达式2) { 执行语句块2; }... else { 执行语句块n; }。程序按顺序判断条件表达式,当某个条件表达式为true时,执行对应的语句块并跳过后面的判断;若所有条件表达式为false,则执行else语句块(如果有)。例如:

     int score = 85;
     if (score >= 90) {
         System.out.println("优秀");
     } else if (score >= 80) {
         System.out.println("良好");
     } else if (score >= 60) {
         System.out.println("及格");
     } else {
         System.out.println("不及格");
     }

2.switch条件语句

含义:switch语句是一种多分支选择语句。它主要用于根据一个表达式的值来选择执行多个固定分支中的一个。

基本格式:

   switch (表达式) {
       case 常量值1:
           // 代码块1
           break;
       case 常量值2:
           // 代码块2
           break;
       // 可以有多个case
       default:
           // 代码块3
   }

其中,“表达式” 是switch语句判断的依据,这个表达式的数据类型可以是byteshortcharintString(从 Java SE 7 开始支持)、枚举类型(enum)等。

  • 例如,以下是一个使用int类型表达式的switch语句:
   int day = 3;
   switch (day) {
       case 1:
           System.out.println("星期一");
           break;
       case 2:
           System.out.println("星期二");
           break;
       case 3:
           System.out.println("星期三");
           break;
       default:
           System.out.println("其他日期");
   }
  • 在这个例子中,day是switch语句中的表达式,其值为3。switch语句会将day的值与各个case 后面的值进行比较。

  • break:语句用于结束switch语句的执行,跳出switch结构。

注:在循环语句中,break会结束整个循环,即判断到break时,后面的循环不再执行。

3.注意事项

  • (1) case 值的要求

    • case后面的值必须是常量表达式,不能是变量。例如,case x(x是变量)是错误的。并且,case值的数据类型必须与switch表达式的数据类型兼容。例如,在switch表达式为char类型时,case值也应该是char类型或者可以隐式转换为char类型的值。
  • (2) break 语句的使用

    • 每个case分支通常应该以break语句结束,以防止 “case 穿透” 现象。如果忘记添加break语句,程序会继续执行下一个case分支的代码,直到遇到break语句或者switch语句结束。这可能会导致不符合预期的执行结果。例如:
     int num = 2;
     switch (num) {
         case 1:
             System.out.println("一");
         case 2:
             System.out.println("二");
         case 3:
             System.out.println("三");
             break;
         default:
             System.out.println("其他");
     }

结果会得到“二”和“三”。因此要注重case的穿透特性,以防止报错。

屏幕截图 2024-12-11 205413.png

二、循环语句:

作用:循环语句专注于解决程序中需要重复执行某段代码的问题,避免了代码的冗余书写,提高了程序的编写效率和可读性。

1.for循环

  • 含义

for循环是一种在程序中用于重复执行一段代码的控制结构。它通常用于已知循环次数的情况,能够按照预先设定的条件,自动地、重复地执行循环体中的语句,从而方便地处理诸如遍历数组、执行固定次数的操作等任务。

格式

基本语法格式为:

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

例如:

     for (int i = 1; i <= 10; i++) {
         System.out.println(i);
     }
  • 在这个例子中,int i = 1是初始化语句,用于定义并初始化循环变量i;i <= 10是条件判断语句,用于判断循环是否继续进行;i++是条件控制语句,用于在每次循环结束后更新循环变量i的值;System.out.println(i)是循环体语句,是每次循环要执行的操作。

2.while循环

  • 含义

while循环也是用于实现循环执行代码的功能。它会在条件表达式为true时,反复执行循环体中的语句。与for循环不同的是,while循环更侧重于在不知道具体循环次数,但知道循环的结束条件的情况下使用。

格式 基本语法格式为:

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

例如:

     int i = 1;
     while (i <= 10) {
         System.out.println(i);
         i++;
     }
  • 在这里,int i = 1是定义初始化语句,i <= 10是条件判断语句,只要这个表达式的值为true,就会执行循环体中的System.out.println(i)循环体语句和i++条件控制语句。

3.do...while循环

    • 含义

      • do - while循环同样用于重复执行代码。它和while循环类似,但有一个重要的区别:do - while循环会先执行一次循环体,然后再判断条件表达式的值。这就保证了循环体至少会被执行一次,适用于那些需要先执行一次操作,然后根据条件决定是否继续执行的场景。

格式 基本语法格式为:

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

例如:

     int i = 1;
     do {
         System.out.println(i);
         i++;
     } while (i <= 10);
  • 此例中,定义初始化语句,执行循环体中的System.out.println(i)循环体语句和i++条件控制语句,然后判断i <= 10这个条件判断语句的值,若为true,则继续循环,若为false,则结束循环。

三、总结

  1. 判断语句总结
  • if - else 语句:格式为if (条件表达式) { 执行语句块1; } else { 执行语句块2; }。在两种互斥的情况下执行不同代码,非此即彼。比如判断一个数是正数还是负数。
  • if - else if - else 语句:语法为if (条件表达式1) { 执行语句块1; } else if (条件表达式2) { 执行语句块2; }... else { 执行语句块n; }。用于处理多种可能的情况,依次判断条件,找到符合的条件就执行对应的语句块,都不符合则执行else块。例如划分成绩等级。
  • switch 语句:结构是switch (表达式) { case值1: 执行代码块1; break; case值2: 执行代码块2; break;... default: 当表达式的值与所有case的值都不匹配时执行的代码块; }。根据表达式的值与case后的常量值匹配来选择执行分支,常用于等值判断场景,如菜单选择、状态转换等。

应用场景

在各种需要根据条件执行不同操作的程序逻辑中都有应用,如游戏中的胜负判断、软件中的权限检查、数据处理中的分类操作等。

  1. 循环语句总结

for 循环:基本格式是for (初始化表达式; 条件表达式; 更新表达式) { 循环体语句; }。适用于已知循环次数的情况,通过初始化循环变量、判断条件和更新变量来控制循环。例如,计算 1 到 100 的和。 while 循环:语法为while (条件表达式) { 循环体语句; }。只要条件成立就一直执行循环体,侧重于根据条件来循环,常用于不确定循环次数,但知道循环结束条件的场景,如读取用户输入直到满足要求。 do - while 循环:格式是do { 循环体语句; } while (条件表达式);。先执行一次循环体,再判断条件是否继续循环,保证循环体至少执行一次,适用于先执行操作再判断是否继续的情况,如游戏中的重试机制。

应用场景

广泛应用于数据遍历(如数组、列表)、数值计算(如迭代算法)、用户交互(如不断获取用户输入)等需要重复操作的场景。