Java从零开始学七(选择结构)
一、 程序的结构:
一般来说程序的结构包含有下面三种:
1、顺序结构
2、选择结构
3、循环结构
二、顺序结构
程序至上而下逐行执行,一条语句执行完之后继续执行下一条语句,一直到程序的末尾
三、选择结构
选择结构是根据条件的成立与否,再决定要执行哪些语句的一种结构
3.1 、IF语句--单分支结构
if (判断条件){
语句1 ;
…
语句2 ;
}
示例一、 比较2个整型变量的大小
package pb.test; public class test4 { public static void main(String[] args) { int x = 3; int y = 10; //定义2个整型变量,x,y System.out.println("=======开始比较======="); if(x>y){ System.out.println("x比y大!"); } if(x<y){ System.out.println("x小于y!"); } if(x==y){ System.out.println("x等于y!"); } System.out.println("=======比较完成======="); } }
3.2、if...else语句--双分支结构
if (判断条件){
语句主体1 ;
}else{
语句主体2;
}
示例二、判断一个数字是奇数还是偶数
package pb.test; public class test5 { public static void main(String[] args) { int x=3; //定义大中型变量x if(x%2==0){ //如果余数为0则是偶数 System.out.println("x是偶数"); }else{ //如果余数不为0则是奇数 System.out.println("x是奇数"); } } }
3.3、三目运算符
使用三目运算符时,操作数有3个,其格式如下:
变量 = 条件判断?表达式1:表达式2
根据条件的成立与否,来决定结果为“:”前或“:”后的表达式,如果条件判断为true,则执行表达式1,为false则执行表达式2
示例三、求出2个数字中的最大值
public static void main(String[] args) { //定义变量来保存最大值 int max=0; //定义2个变量 int x=3; int y=10; //使用3目运算判断如果x>y则,max=x,否则max=y; max=x>y?x:y; System.out.println("max为: "+max); }
3.4、if…else if…else语句 --多分支结构
如果需要在if..else里判断多个条件时,就需要if..else if … else语句了,其格式如下:
if (条件判断1){
语句主体1 ;
}else if (条件判断2){
语句主体 2 ;
}
… // 多个else if()语句
else{
语句主体3 ;
}
示例四、
package pb.test; public class test6 { public static void main(String[] args) { int x=3; if(x==1){ System.out.println("x的值是1!"); }else if(x==2){ System.out.println("x的值是2!"); }else if(x==3){ System.out.println("x的值是3!"); }else{ System.out.println("x的值不是1,2,3 中的一个!"); } } }
四、Switch结构
要在许多的选择条件中找到并执行其中一个符合判断条件的语句时,除了可以使用if..else不断地判断之外,也可以使用另一种更方便的方式即多重选择——switch语句,语法格式:
switch (表达式){
case 选择值1 : 语句主体 1 ; break ;
case 选择值2 : 语句主体 2 ; break ;
…….
case 选择值n : 语句主体 n ; break ; default: 语句主体 ;
}
4.1、执行流程
示例五、判断学生成绩,并给于评分,90~100分,A级大于80分,B级,大于70分,输出C级,大于60分,D级,低于60分输出E级
package pb.test; public class test7 { public static void main(String[] args) { int score = 75; //声明学生分数 switch (score/10){ case 10: case 9: System.out.println("A级"); break; case 8: System.out.println("B级"); break; case 7: System.out.println("C级"); break; case 6: System.out.println("D级"); break; default: System.out.println("E级"); break; } } }
结果:C级
还是上面的如果不加break;
package pb.test; public class test7 { public static void main(String[] args) { int score = 75; //声明学生分数 switch (score/10){ case 10: case 9: System.out.println("A级"); case 8: System.out.println("B级"); case 7: System.out.println("C级"); case 6: System.out.println("D级"); default: System.out.println("E级"); } } }
结果:C级,D级,E级