ITEEDU

Java Gossip: if 条件式

为了应付程序所可能遇到的各种状况,Java提供了绦件判断 - if ,它的语法如下:

if(条件式)
陈述句一;
else
陈述句二;

这个语法的意思,白话来说,就是当条件式成立时(true),则执行陈述句一,要不然就执行陈述句二;如果条件式不成立时并不想作任何事,则else可以 省略。

在 if 后如果有两个以上陈述句,称之为「复合陈述句」(Compound statement),此时必须使用{ }将复合陈述句包括起来,例如:

if(条件式) { 
陈述句一; 
陈述句二; 
} 
else { 
陈述句三; 
陈述句四; 
}

下面来写个简单的程序,判断使用者的输入是奇数还是偶数:

ConditionIf.java
import java.util.Scanner;
public class ConditionIf {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入数字: ");
		int input = scanner.nextInt();
		int remain = input % 2;
		if(remain == 1)
		System.out.println(input + "为奇数");
		else
		System.out.println(input + "为偶数");
	}
}

在 if 中也可以再设定执行的条件,例如:

if(条件式一) { 
陈述句一; 

if(条件式二) 
陈述句二; 

陈述句三; 
} 

 这只个简单的例子,其中陈述句二要执行,必须同时满足条件式一与二才行;再来看个例子:

if(条件式一) { 
陈述句一; 
// 其它陈述句 
} 
else 
if(条件式二) 
陈述句二; 

如果条件式一不满足,就会执行else中的陈述,而我们在这边进行条件式二的测试,如果满足就执行陈述句二,由于Java是个自由格式语言,您可以适当的 排列这个程序,这会比较好懂一些:

if(条件式一) { 
陈述句一; 
// 其它陈述句 
} 
else if(条件式二) 
陈述句二; 

  基于这个方式,您可以如下设定多个条件,且易读易懂:

if(条件式一) 
陈述一; 
else if(条件式二) 
陈述句二; 
else if(条件式三) 
陈述句三; 
else 
陈述句四; 

  陈述句四会在条件式一、二、三都不成立时执行;下面这个程序是个简单的例子,处理学生的成绩等级问题:

ConditionIf.java
import java.util.Scanner;

public class ConditionIf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("输入分数:");

int score = scanner.nextInt();

if(score >= 90)
System.out.println("得A");
else if(score >= 80 && score < 90)
System.out.println("得B");
else if(score >= 70 && score < 80)
System.out.println("得C");
else if(score >= 60 && score < 70)
System.out.println("得D");
else
System.out.println("得E(不及格)");
}
} 

  在这边要注意的是,if与else的配对,例如下面这个程序依缩排来看,您觉得有无问题存在?

if(条件式一) 
if(条件式二) 
陈述句一; 
else 
陈述句二; 

 很多人都会以为条件式二的if会与else配对,但事实上是条件式一的if与else配对,加上括号就不会有问题了:

if(条件式一) { 
if(条件式二) 
陈述句一; 
else 
陈述句二; 
} 

  如果想避免这种错误,在程序中多使用括号是必要的,多写一些总是比少写一些来得保险一点。