Logo

郎哥编程

多重if结构

2019-12-09 1156

条件结构用于实现需要判断的情况,它以一个逻辑条件成立与否为条件,决定一个操作的执行或不执行,或执行两个不同的操作。前面介绍的if和if-else结构,它是Java语言中实现判断的两种方法,可以实现一个逻辑条件的判断。在某些情况下,需要检查多重条件,解决这种情况可用多重if、嵌套if或switch结构来解决,本课将具体介绍多重if结构。

在进行条件判断时,常常会遇到一种情况,如果条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。例如:四则运算器程序在计算用户输入的算式时,首先从左到右扫描算式。假设本次扫描不考虑优先级运算,只是完成提取运算数和运算符的功能。扫描过程如下:如果是运算数,判断是整型还是浮点,整型赋值给intNum,如果是浮点赋值给floatNum,如果是字符型赋值给op。在编程时遇到此种情况,则可使用多重if结构解决。

多重if结构实际上if-else结构的另一种形式;if-else-if,这种形式也称为阶梯式,当有多个分支选择时,可采用多重if结构。

多重if结构的语法如下:

if(<条件1>)
  <语句块>
else if(<条件2>)
   <语句块>
else if(<条件3>)
   <语句块>
……
else
   <语句块>

这种结构是从上到下逐个对条件进行判断,一旦发现条件满足就执行与该条件相关的语句,并跳过其他的条件判断;若没有一个条件满足,则执行最后一个else后的语句块;如果没有最后的else语句,则不执行任何操作,执行该结构后面的语句。同样,语句块中包含多条语句时,必须使用“{”和“}”把多条语句括起来。

案例1:编写一个程序,根据用户输入的考试成绩,输出相应的成绩评定信息。成绩大于等于90分输出“优”;成绩大于等于80分小于90分输出“良”;成绩大于等于60分小于80分输出“中”,成绩小于60分输出“差”。

在PbaseUnit10项目unit包下创建MuiltIfSample类。代码如下:

/** 
* @Title: MuiltIfSample.java 
* @Package unit 
* @Description: Java基础知识课程案例
* @author 编程训练营 
* @date  
* @version V1.0 
*/ 
 
package unit;
 
import java.util.Scanner;
 
/** 
* @ClassName: MuiltIfSample 
* @Description: 流程控制(多重if结构)案例1
* @author 编程训练营 
* @date 2019年12月3日 
* 
*/
 
public class MuiltIfSample {
 
    /**
     * @Title: main
     * @Description: Java程序入口main方法
     * @param @param args 参数
     *
     * @return void 返回类型 @throws
     */
 
    public static void main(String[] args) {
      
       float fScore;
       // 声明Scanner类,接收用户输入的考试成绩
       Scanner sc = new Scanner(System.in);
       // 提示用户输入两个整数
       System.out.println("请输入考试成绩:");
       // Scanner类方法nextInt获取int类型的输入
       fScore = sc.nextFloat();
       // 判断成绩范围并输出
       if (fScore >= 90)
           System.out.printf("%.2f:优", fScore);
       else if ((fScore >= 80) && (fScore < 90))
           System.out.printf("%.2f:良", fScore);
       else if ((fScore >= 60) && (fScore < 80))
           System.out.printf("%.2f:中", fScore);
       else
           System.out.printf("%.2f:差", fScore);
 
    }
 
}

程序结构分析

程序功能主要是演示多重if结构的使用。

程序声明了一个float类型的变量fScore,用于存储用户输入的考试成绩。然后,使用if-else-if结构判断fScore变量中的值满足哪个if语句中的条件。如果第一个if条件返回结果为假,则依次检查else if语句,任何一个else if条件返回结果为真时,则执行该else if下的语句块,如果都返回为假,则执行else语句。

程序执行结果如下图所示:

image.png

从上述结果可以看出,输入不同的考试成绩,会输出不同的结果。输入65.8时,输出“中”,输入80时,输出“良”,输入46时,输出“差”。

当程序需要根据不同条件选择不同的分支语句块时,可以通过if-else-if结构实现,if-else-if结构逐一判断条件,当其中一个条件满足时,执行该条件下的语句块,其它条件下的语句块则不被执行。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论