Java程序流程控制的选择结构
选择结构有if语句,switch语句和条件运算符等三种。
if语句的语法格式
if(判断条件){
语句块;
}
如果判断条件为true,则执行语句块;否则不执行。
上述if语句不能解决判断条件为false时执行语句块的情况,那么我们可以用if…else语句,其中else语句就是条件为false时执行的。
if…else语句的语法格式
if(判断条件){
语句块1;
}else{
语句块2;
}
上述if…else语句中如果判断条件为true,则执行语句块1,否则执行语句块2。如果有多个判断条件,比如老师为学生成绩赋等级,一般都会有多个等级,这样的话,如果用if…else语句就不能解决问题,所以我们可以用if…else if…else……语句。但如果条件分支比较多,用这样的结构就会显得繁琐复杂,如此,我们可以用swtich语句。
switch语句的语法格式
switch(表达式){
case 选择值1: 语句块1;
break;
case 选择值2: 语句块2;
break;
……
case 选择值n: 语句块n;
break;
default: 语句块;
}
在该语句中选择表达式可以是byte,char,short,int,String和枚举等类型。但不能是浮点数(如double型和flaot型)和long型。执行该语句时,先计算表达式的值,在看是否匹配case后面的选择值,如果没有,则执行default语句;如果有,则执行case后面的语句,直到遇到break后才退出switch语句,若case语块中没有break语句,则程序一直执行到switch语句句末。
breaks是switch语句中跳转语句,作用是跳出switch语句,提高了代码效率,改表了程序执行流程。
最后,条件运算符也是选择结构。
条件运算符的语法结构:
变量 = 布尔表达式 ?表达式1 : 表达式2;
即当布尔表达式为true时,把表达式1的值赋给变量,反之把表达式2的值赋给变量。
条件运算符相当于一个if…else语句。如下代码,如果a大于b则把a的值赋给c,反则把b的值赋给c。
package firstdemo;
import java.util.Scanner;
public class hello {
public static void main(String[]args) {
int a,b,c;
Scanner scan = new Scanner(System.in);
a = scan.nextInt();
b = scan.nextInt();
c = a > b?a:b;
System.out.println(c);
}
}
或者把
c = a > b?a:b;
改为
if(a>b)
c = a;
else
c = b;
下面演示了switch语句的使用方法:
package firstdemo;
import java.util.Scanner;
public class hello {
public static void main(String[]args) {
System.out.print("请输入一个1到7的整数:");
Scanner scan = new Scanner(System.in);
int week;
week = scan.nextInt();
switch(week) {
case 1:
System.out.println("星期一有军理");
break;
case 2:
System.out.println("星期二有线代");
break;
case 3:
System.out.println("星期三有Java");
break;
case 4:
System.out.println("星期四有高数");
break;
case 5:
System.out.println("星期五有英语");
break;
case 6:
case 7:
System.out.println("没有课程");
default:
System.out.println("输出错误!2");
}
}
}