大可制作:QQ群:31564239(asp|jsp|php|mysql)

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
        陈述句二;
}
 
如果想避免这种错误,在程序中多使用括号是必要的,多写一些总是比少写一些来得保险一点。