零基础学Java第2版
上QQ阅读APP看书,第一时间看更新

4.2 条件语句

在现实生活中,经常听人说:如果某人发财了,某人就会做什么。其实这就是程序设计中所说的条件语句。像“如果⋯”、“就⋯”、“否则⋯”,当然这只是很简单的条件语句,在真正的程序设计中,使用的条件语句要比这复杂得多。

4.2.1 条件语句的种类

在程序设计中,条件语句的标准格式如下:

01   if(条件)
02   {
03       目的一;
04   }
05   else
06   {
07      目的二;
08   }

【实例4.3】掌握格式后,先看一个简单的程序段。

01  ///将整型变量a,b的大小比较得出的布尔型变量作为条件语句的条件
02  ///通过条件语句来得出不同的输出结果
03  public class control
04  {
05     public static void main(String[] args)
06     {
07       int a=20;08       int b=30;
09       if (a>b)
10       {
11          System.out.println("很幸运");
12       }
13       else
14       {
15          System.out.println("很开心");
16       }
17     }
18  }

【代码说明】因为“a=20”而“b=30”,所以“a<b”。在条件语句中,程序代码的意思是,如果“a>b”,就输出“很幸运”,如果“a<b”,就输出“很开心”,所以程序的输出就是“很开心”。

【运行效果】

很开心

注意

条件表达式是一个关系表达式,其结果是布尔型数据。换句话解释上面的程序段:如果“a>b”是真,就输出“很幸运”,否则输出“很开心”。

在条件语句的程序设计中,有一种最简单的条件语句,如下所示:

01   if(条件)
02        目的;

如果有很多的目的,也可以采取下列的形式:

01   if(条件)
02   {
03        目的一;
04        目的二;
05        目的三;
06        目的四;
07   }

【实例4.4】下面看一个有关这种类型的条件语句的例子。

01   public class control1
02   {
03       public static void main(String[] args)
04       {
05           int salary=10000;
06           if (salary>500)
07           {
08               System.out.println("想请吃饭!");
09               System.out.println("想请唱歌!");
10               System.out.println("想请喝酒!");
11           }
12
13       }
14   }

【代码说明】条件语句中判断“salary>500”是否为真,如果是真就输出“想请吃饭!想请唱歌!想请喝酒!”,如果是假,就什么都不做。在程序中“salary=10000”,满足“salary>500”,条件为真,所以输出以上的三句话。

【运行效果】

想请吃饭!
想请唱歌!
想请喝酒!

注意

在多个目的的程序段中,一般按顺序执行,即先目的一,再目的二,再目的三,依次执行下去。

如果出现多种不同的条件,应该如何处理呢?可以使用条件语句中的复杂型,其结构如下:

01   if (条件1)
02   {
03        目的1;
04   }
05   else if (条件2)
06   {
07        目的2;
08   }
09   else if (条件3)
10   {
11        目的3;
12   }
13   else
14   {
15        不满足以上所有条件,如何办;
16   }

【实例4.5】根据以上的结构,学习有关这种复杂条件语句的实例,代码如下所示。

01   ///当achievement等于100,就奖励一台笔记本电脑
02   ///当achievement大于90小于100,就奖励一个MP4
03   ///当achievement大于80小于90,就奖励一块网卡
04   ///当achievement大于60小于80,不给予奖励
05   ///当achievement小于60,放假回学校补习
06   public class control2
07   {
08       public static void main(String[] args)
09       {
10          int achievement=85;
11          if(achievement==100)
12          {
13                 System.out.println("奖励一台笔记本电脑");
14          }
15          else if((achievement>=90)&&(achievement<100))
16          {
17                 System.out.println("奖励一个MP4");
18          }
19            else if((achievement>=80)&&(achievement<90))
20          {
21                 System.out.println("奖励一块网卡");
22          }
23            else if((achievement>=60)&&(achievement<80))
24          {
25                 System.out.println("不给予任何奖励");
26          }
27          else
28          {
29                 System.out.println("放假到学校补习");
30          }
31       }
32   }

【代码说明】上述代码可以看出,当有多个不同的条件存在时,处理的结果就不一样。成绩在大于80小于90分之内,就可以奖励一块网卡,而成绩大于90小于100分,则奖励一个MP4。在此程序中,开始成绩是85分,所以处理的结果就是奖励一块网卡。

【运行效果】

奖励一块网卡

图4.1 条件语句流程图

条件语句已经基本介绍完毕,很重要的一点就是,在程序设计的时候,思路一定要清晰,如何才能有很清晰的思路呢?那就是绘制流程图。流程图就是:在程序开发前,为了能够思路更加清晰,而将整个程序执行的顺序流程绘制出来。图4.1为一个有关条件语句的通用流程图。

将上面的程序段作为一个实例,绘制其基本的流程图,如图4.2所示。鉴于页面的版面,这里只给出了4种条件,并没有完全体现出上面案例的5种条件,读者可自己画一个完整的流程图。

图4.2 一个实例的条件流程图

针对最复杂的条件语句,在程序设计中,有一种分支语句可以代替复杂条件语句。在实际程序开发过程中,使用条件语句类型比较多的是标准型,而复杂型的一般用分支语句来代替。当然也可以使用复杂型的条件语句。为了与实战结合,下面看一个稍微复杂的程序段。

【实例4.6】条件:设计一个程序,用于计算语文(90)、英语(75)、数学(90)、艺术(85)四门功课的平均分,并对此学生进行评价。

在编写程序之前要先绘制流程图,这样编程的思路就会非常清晰,本例流程如图4.3所示。

根据以上的流程图,开始编写程序,程序代码段如下。

01   ///通过计算学生的平均分Avg,得出这个学生的等级
02   ///如果是大于90小于或等于100则是优秀
03   ///如果是大于80小于或等于90则是良好
04   ///如果是大于70小于或等于80则是良
05   ///如果是大于60小于或等于70则是合格
06   ///如果小于或等于60则是不合格
07   public class control3
08   {
09       public static void main(String[] args)
10       {
11          int Chinese=90;
12          int English=75;
13          int Math=90;
14          int Art=85;
15          double Avg=(Chinese+English+Math+Art)/4;
16          if((Avg>90)&&(Avg<=100))
17          {
18                 System.out.println("这个学生的所有功课的平均分是:"+Avg);
19                 System.out.println("这个学生的成绩应得A,是优秀");
20          }
21          else if((Avg>80)&&(Avg<=90))
22          {
23                 System.out.println("这个学生的所有功课的平均分是:"+Avg);
24                 System.out.println("这个学生的成绩应得B,是良好");
25          }
26          else if((Avg>70)&&(Avg<=80))
27          {
28                 System.out.println("这个学生的所有功课的平均分是:"+Avg);
29                 System.out.println("这个学生的成绩应得C,是良");
30          }
31          else if((Avg>60)&&(Avg<=70))
32          {
33                 System.out.println("这个学生的所有功课的平均分是:"+Avg);
34                 System.out.println("这个学生的成绩应得D,是合格");
35          }
36          else
37          {
38                 System.out.println("这个学生的所有功课的平均分是:"+Avg);
39                 System.out.println("这个学生的成绩应得E,是不合格");
40          }
41       }
42   }

图4.3 成绩代码条件流程图

【代码说明】第16~40行是复杂型的条件语句,判断了5种情况下不同的输出结果。第15行定义的是double变量,表示计算后的平均值。

【运行效果】

这个学生的所有功课的平均分是:85.0
这个学生的成绩应得B,是良好

4.2.2 如何使用好条件语句

使用好条件语句需要注意以下几点:

(1)应该绘制流程图,使编程时思路更加清晰。

(2)编程时,在最简单形式的条件语句中,可以不使用大括号,因为它不会产生混淆,但建议无论哪种形式的条件语句,都应该使用大括号。