10、分支语句
if条件结构是根据条件判断之后再作处理
简单判断语句:
if(表达式)
{
执行语句;
}
else
{
执行语句;
}
意为:如果…那么…
执行过程:当程序执行到if时,首先会判断()里面表达式的值,如果表达式值为真,那么就执行()后的{}里执行语句,否则执行else里的执行语句。
上面(表达式)中表达式出来的值是布尔类型。
例:输入一个字符,判断是大写字母还是小写字母,输出提示信息。
import java.util.Scanner;
public class f
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("请输入一个字母:");
int x = input.nextInt();
if((x >= 65)&&(x <= 90))
{
System.out.println("输入的字母为大写"+(char)x);
}
else
{
System.out.println("输入的字母为小写"+(char)x);
}
}
}
这里不允许输入字母,只能输入数字。我们现在练习的是if、else,上面有BUG,但无关紧要。
分支嵌套:
if(表达式1)
{
执行语句1;
}
else if(表达式2)
{
执行语句2;
}
else if(表达式3)
{
执行语句3;
}
else
{
执行语句n;
}
执行过程:当程序进行到if时,首先会判断()表达式1的值,如果为真,那么就执行执行语句1中的内容,然后整个if-else内容结束。如果为假,那么就会向下执行else if后的表达式2,为真,就执行语句2,为假,就往下执行,直到为真为止。如果所有表达式都为假,那么就会执行else后面{}过去的代码然后整个if-else结束。
例:根据天气情况选择外出或在家,外出逛街还是逛公园,在家看电影还是玩游戏。
import java.util.Scanner;
public class g
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("今天天气如何?(1:晴,2霾)");
int x = input.nextInt();
if(x == 1)
{
System.out.print("今天天气太好了,我们是去逛街还是逛公园呢?(1:逛街,2:逛公园)");
int flag = input.nextInt();
if(flag == 1)
{
System.out.print("陪女票去逛街");
}
else if(flag == 2)
{
System.out.print("陪公园逛女票");
}
}
else if(x == 2)
{
System.out.print("今天天气不好,我们在家看电影还是玩游呢?(1:看电影,2:玩游戏)");
int flag = input.nextInt();
if(flag == 1)
{
System.out.print("陪女票看动作电影");
}
else if(flag == 2)
{
System.out.print("背着女朋友玩游戏");
}
}
}
}