流程控制语句-if
在程序中我们需用去判断不同的情况做不同的处理,这个时候就需要使用到流程控制语句来处理。我们先来学习最常用的流程控制语句if。
格式
if语句其实有三种部分组成的
三个部分:
①if部分
if(判断表达式){<br /> 语句体;<br /> }<br /> ② else if部分
else if(判断表达式){<br /> 语句体;<br /> }<br /> ③else部分
else{<br /> 语句体;<br /> }
一个完整的if语句,首先在最前面有且仅有一个if部分,后面会有0个到多个else if语句,最后会有0个或1个else
例如:
if(判断表达式1){
语句体1;
}
if(判断表达式1){
语句体1;
}else if(判断表达式2){
语句体2;
}
if(判断表达式1){
语句体1;
}else if(判断表达式2){
语句体2;
}else if(判断表达式3){
语句体3;
}
if(判断表达式1){
语句体1;
}else if(判断表达式2){
语句体2;
}else if(判断表达式3){
语句体3;
}else if(判断表达式4){
语句体4;
}else{
语句体n+1;
}
if(判断表达式1){
语句体1;
}else{
语句体n+1;
}
执行流程
从上到下依次执行判断表达式<br /> 结果为true:则执行后面紧跟着的语句体.语句体执行完了整个if语句就结束了.<br /> 结果为false:则继续判断下面一个判断表达式<br /> 如果所有判断表达式的结果都为false,在有else语句的情况下就执行else里面的语句体,没有的话if语句结束.
例如:
public static void main(String[] args) {
//输入年龄 判断是否能够进入网吧
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的年龄");
int age = sc.nextInt();
//判断age>=18
if(age>=18){
System.out.println("可以进入网吧");
}else{
System.out.println("未成年不能进入网吧");
}
}
注意
①一旦执行了一个大括号中的语句体,整个if语句就结束了.不可能出现执行两个语句体的情况.<br /> **②如果大括号中的语句体只有一行代码的时候可以把大括号省略.但是建议永远不要省略**
练习
1.判断下面代码的输出结果
int a=10;
int b=20;
if(a>5){
System.out.print(1);
}else if(b>10){
System.out.print(2);
}else{
System.out.print(3);
}
System.out.print(4);
2.判断下面代码的输出结果 1 5 9
int a=10;
int b=20;
if(a>1){
System.out.print(1);
if(b>22){
System.out.print(4);
}else if(a>3){
System.out.print(5);
}
if(a>20){
System.out.print(8);
}else{
System.out.print(9);
}
}else if(a>9){
System.out.print(2);
if(b>10){
System.out.print(6);
}else if(a>3){
System.out.print(7);
}
}else if(b>2){
System.out.print(3);
}
3.按照要求编写代码
让用户键盘录入语文,英语,数学的考试成绩。如果总分小于180分要求输出:由于你的优秀,我想和你家长聊聊。
4.按照要求编写代码
让用户键盘录入语文,英语,数学的考试成绩。如果总分小于180分要求输出:由于你的优秀,我想和你家长聊聊。否则就输出:同九义,何汝秀
5.按照要求编写代码
让用户键盘录入语文,英语,数学的考试成绩。
满足不同的条件输出不同的内容(要求只能输出一种)
条件 | 输出内容 |
---|---|
总分<180 | 叫家长 |
总分>=180并且语数外分数都大于98分 | 恭喜升任五道杠大队长 |
总分>=180但是做不了五道杠的情况下如果语数外分数都大于95分 | 恭喜升任班长 |
总分>=180即做不了五道杠也做不了班长的情况下 | 同九义,何汝秀 |
6.下面代码的执行结果是什么?
int a=10;
int b;
if(a%2==0){
b=0;
}else if(a%2==1){
b=1;
}
System.out.println(b);
答案: 会在编译的时候报错.因为在编译的时候编译器看到了if…else if语句.它认为有可能两个判断都不成立.这样的话b就可能出现没有赋值直接使用的情况.