1、条件控制语句
在Java中条件控制是通过if语句或switch语句实现的。
1.1、if-else语句的三种形式
1.2、if
1.2.1、if结构
if(表达式){
语句
}
1.2.2、示例
int x=4;
if(x>0){
System.out.println("x大于0");
}
运行结果:
1.3、if-else
1.3.1、if-else结构
if(表达式){
语句1
}else{
语句2
}
1.3.2、示例
int x=4;
if(x>0){
System.out.println("x大于0");
}else{
System.out.println("x小于等于0");
}
运行结果:
1.3.3、面试题:从键盘输入两个整数a,b,如果a>b,输出a大于b,否则输出a小于等于b
Scanner s = new Scanner(System.in);
System.out.println("请输入a的值");
int a = s.nextInt();
System.out.println("请输入b的值");
int b = s.nextInt();
if(a>b){
System.out.println("a大于b");
}else{
System.out.println("a小于b");
}
运行结果:
1.4、if-else if-else
1.4.1、if-else if-else结构
if(表达式1){
语句1
}else if(表达式2){
语句2
}else if(表达式3){
语句3
}
…
else if(表达式n){
语句n
}else{
语句m
}
1.4.2、示例
int x=5;
if(x<0){
System.out.println("x小于0");
}else if(x>=0 && x<5){
System.out.println("x大于等于0或小于5");
}else if(x>5){
System.out.println("x大于5");
}else{
System.out.println("x等于5");
}
运行结果:
1.4.3、面试题:从键盘输入一个整数x,根据x的情况,输出相应的显示信息(输出x大于0或x小于0或x等于0)
Scanner s = new Scanner(System.in);
System.out.println("请输入x的值");
int x = s.nextInt();
if(x<0){
System.out.println("x小于0");
}else if(x>0){
System.out.println("x大于0");
}else{
System.out.println("x等于0");
}
运行结果:
1.4.4、面试题:输入一个年份,判断该年份是否为闰年(闰年的条件是:1、能被4整除,但是不能被100整除;2、能被400整除)
Scanner s = new Scanner(System.in);
System.out.println("请输入月份");
int year = s.nextInt();
if((year%4==0 && year%100!=0) || year%400==0){
System.out.println("是闰年");
}else{
System.out.println("不是闰年");
}
运行结果:
1.5、switch分支选择语句
switch语句和if-else if语句相似,但是switch要比if-else if语句要优秀,他是根据表达式的值来判断要执行的语句
1.5.1、switch语句结构
switch(表达式){
case 常量表达式1:
语句1
break;
case 常量表达式2:
语句2
break;
case 常量表达式3:
语句3
break;
…
case 常量表达式n:
语句n
break;
default: 语句n+1
}
1.5.2、示例
Scanner s = new Scanner(System.in);
System.out.println("请输入1-2的整数");
int x=s.nextInt();
switch(x){
case 1:
System.out.println("输入的是1");
break;
case 2:
System.out.println("输入的是2");
break;
default:
System.out.println("不在范围内");
}
运行结果:
1.5.3、面试题:按照下列要求编写程序(用户输入1、2、3、4、其他数字,屏幕显示111、222、333、444、其他数字)
Scanner s = new Scanner(System.in);
System.out.println("请输入1-4的整数");
int x=s.nextInt();
switch(x){
case 1:
System.out.println(111);
break;
case 2:
System.out.println(222);
break;
case 3:
System.out.println(333);
break;
case 4:
System.out.println(444);
break;
default:
System.out.println("其他数字");
}
运行结果:
1.5.4、使用switch语句的注意事项
- 用作判断的表达式必须是符合byte、short、int、char类型的表达式,而不能使用double、long、boolean,也不能使用字符串
- switch表达式依次和每个case子句中的常量值相比较。如果匹配成功,则执行case子句中常量值后的语句,直到break语句为止
- case子句中的常量值不能相同,否则会报错
- default子句可以省略