Java-选择结构(if-else)
编程语言有3种语句的顺序
顺序结构:从上往下,逐行执行
选择结构:根据需要,有些执行,有些不执行
循环结构:反复做同一件事
下面主要来说选择结构:
1.单分支if语句
语法格式:
if(表达式){
语句;
}
规则:只要表达式为true,则执行if中的语句,反之表达式为flase,不执行if中的语句
public static void main(String[] args) { // TODO Auto-generated method stub int age=20; if(age>=18){ System.out.println("您可以注册!"); } }
分析:如果age的值大于等于18,执行if中的输出语句,反之,如果if不满足条件(小于18),不执行if中的输出语句
2.if-else语句
语法结构:
if(表达式){
语句1
}else{
语句2
}
规则:如果表达式为true,则执行if语句,反之,如果表达式为flase,执行else中语句
注意:else的后面不要加入任何条件,else本事就是if的相反条件
程序要么执行if语句,要么执行else语句,两端必须要执行一端
public class Test1 { public static void main(String[] args) { // TODO Auto-generated method stub int age=12; if(age>=16){ System.out.println("您可以注册!"); }else{ System.out.println("您还小。。。再等几年"); } } }
分析:如果age大于或等于16,执行if语句,反之,如果age小于16岁,执行else语句
3.多分支if-else if
格式:if(表达式1){
语句1
}else if(表达式2){
语句2
}else if(表达式3){
语句3
}……else{
语句n
}
语法规则:多分支if-else if特点有多重执行的可能,但只执行其中一条语句
如果表达式1为真,执行语句1,如果表达式2为真,执行语句2,如果表达式3为真,执行语句3……都不满足条件,执行语句n
import java.util.Scanner; public class Test1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); int num=scanner.nextInt(); if(num>0) { System.out.println("整数"); }else if(num==0) { System.out.println("零"); }else { System.out.println("负数"); } } }
功能跟if-else if很相似,多个分支,只执行一个分支
语法格式:
switch(变量){
case 值1:
语句1;
break;
case值2:
语句2;
break;
Case 值3:
语句3;
break;
…
default:
上面的分支全部不满足,执行该语句;
}
语法规则:switch中变量的值,如果等于case中的值,就执行case语句,通过break,退出switch语句
switch中变量的取值:byte,short,int,char
jdk 1.7可以使用String
break:用于退出switch语句,如果不加break语句,代码会一直往下执行,直到遇到break/default退出switch语句(称为“击穿”)
import java.util.Scanner; public class Test1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); System.out.println("请输入你的分数(5分制):"); int score=scanner.nextInt(); switch(score) { case 5: System.out.println("优秀"); break; case 4: System.out.println("良好"); break; case 3: System.out.println("及格"); break; case 2: case 1: case 0: System.out.println("不及格"); break; default: System.out.println("输入有误"); } } }