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.2所示。鉴于页面的版面,这里只给出了4种条件,并没有完全体现出上面案例的5种条件,读者可自己画一个完整的流程图。

4.2 条件语句 - 图1

图 4.1 条件语句流程图

4.2 条件语句 - 图2

图 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.2 条件语句 - 图3

图 4.3 成绩代码条件流程图

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

【运行效果】


这个学生的所有功课的平均分是:85.0

这个学生的成绩应得B,是良好