java程序中的选择语句
if和switch语句
**:
- if语句:
- 分为3中格式:
第一种格式:
if(表达式){
语句;
}
针对一种流程进行判断,结果为true执行语句,结果为false不执行语句;
注意事项:
if后面不能有分号,有分号if语句没有意义.
class Demo{
public static void main(String[] args){
int x = 2;
int y = 3;
if(x<y){
//x<y时语句执行
System.out.println("语句执行了");
}
}
}
- 第二种格式:
- if(表达式){
语句1;
}else{
语句2;
}
流程:
对表达式进行判断,如果为true执行语句1,如果为false执行语句2;
这中格式实际开发中用的比较多;
class Demo{
public static void main(String[] args){
int x = 2;
int y = 3;
if(x>y){
System.out.println("语句1执行了");
}else{
System.out.println("语句2执行了");
}
}
}
if格式2和三元运算符的区别:
三元运算符输出的是结果,if格式输出的是结构复杂的语句;
能用三元运算符实现的,一定可以用if实现;
能用if实现的,不一定能用三元运算符实现;
- 第三中格式:
判断多种条件
if(表达式1){
语句1;
}else if(表达式2){
语句2;
}else if(表达式3){
…
…
}else if(表达式n){
语句n;
}else{
语句n+1;
}
流程:
先判断表达式1,成立则执行语句1;
不成立则判断表达式2,成立则执行语句2;
如果表达式都不成立,运行else语句,运行语句n+1;
例:用键盘录入输入一个月份,用if语句判断是哪个季节:
import java.util.Scanner;//导入包
class Demo{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//提示并接收
System.out.println("请输入需要查询的月份:");
int x = sc.nextInt();
if(x<1 || x>12){
System.out.println("输入不合法!");
}else if(x>=3 && x<=5){
System.out.println(x+"月为春季");
}else if(x>=6 && x<=8 ){
System.out.println(x+"月为夏季");
}else if(x>=9 && x<= 11){
System.out.println(x+"月为秋季");
}else{
System.out.println(x+"月为冬季");
}
}
}
- switch语句
- 格式:
switch(表达式){
case 值1:
语句1;
break;
case 值2:
语句2;
break;
…
…
default:
语句n;
break;
}
例:键盘录入数据判断星期几?
import java.util.Scanner;//导入包
class Demo{
public static void main(Sreing[] args){
//创建录入对象
Scanner sc = new Scanner(System.in);
//接收数据并提示
System.out.println("请输入一个数值:");
int x = sc.nextInt();
switch(x){
case 1:
System.out.println("星期一");
break;
case 2:
System,out,println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入不合法");
}
}
}
流程:
1、switch表达式 得到一个结果,先于case 1 的值进行比较,如果匹配执行语句1,遇见break结束语句;
2、与case 1 值不匹配,与case 2 比较,如果匹配执行语句2;遇见break结束语句;
3、依次与case的值都不匹配,执行default语句,程序结束.
switch后面表达式可以跟什么类型?
switch 后面的表达式可以跟int,short,byte,char类型,
jdk1.5(包含)之后可以跟枚举,
jdk1.7(包含)以后可以跟String类型,
注意事项:
- case后面只能跟常量,不能跟变量;
- default语句可以在语句中的任意位置,在中间时不可以省略break,在末尾可以省略;
switch语句的结束条件是:
遇见break,
程序默认执行到末尾;
break属于跳转控制语句;
case的穿透性:
case 在执行过程中不遇见break,会一直执行下去,直到遇见break为止,或者程序默认执行到结尾;
Scanner接收String类型:
public String nextLine() :这是Scanner类提供的内在的功能 :能够去录入字符串数据;
用法 : String 变量名 = 控制台变量名 . nextLine();
下期学习java程序中的for循环.