本章目标:
掌握分支语句
if-else语句
switch语句
程序结构
从结构化程序设计角度出发,程序有三种结构:
顺序结构
选择结构
循环结构
前面两种就不多说了,重点是第三种——循环结构:
它有两种结构:当型和直到型
当型:当P条件成立时(T),反复执行A,直到P为“假”时,才停止循环
直到型:先执行A,再判断P,若为T,再执行A,如此反复,直到P为“假”
分支语句
分支语句实现程序流程控制的功能,即根据一定的条件有选择的执行或跳过特定的语句
Java分支语句分类:
If-else语句
Switch语句
if语句有三种形式:
形式1:
if(boolean类型表达式)
语句A;
功能:当表达式值为false时,执行语句A,否则跳过语句A。
形式2:
if(boolean类型表达式)
语句A;
else
语句B;
功能:表达式为true,执行A;表达式为false,执行B;
举例1:小明考试得了59分,是否及格?
public class Demo01 { public static void main(String args[]) { int score = 59; if(score>=60) { System.out.println(“成绩及格"); } else { System.out.println(“成绩不及格"); } } }
思考:现在小明的父母想知道自己孩子在学校中的排名,90~100是前100名,80~89是前200名,70~79是前300名,60~69是前400名,60分以下是400名开外。
public class Demo02 { public static void main(String args[]) { float score = 95; if(score>=60) { if(score>=90&&score<=100) { System.out.println("等级为前100名。"); } else { if(score>=80&&score<90) { System.out.println("等级为前200名。"); } else { if(score>=70&&score<80) { System.out.println("等级为前300名。"); } else { System.out.println("等级为前400名。"); } } } } else { System.out.println("等级为400名开外。"); } } };
大家会发现,虽然程序功能已经实现了,但是if语句嵌套过多,而且程序代码庞大,那么有没有更简洁的代码呢?是有的!
if语句——形式3:
if(Boolean类型表达式1)
语句1
else if(表达式2)
语句2
else if(表达式3)
语句3
…… ……
else if(表达式n)
语句n
else
语句n
代码:
public class Demo3 { public static void main(String args[]) { float score=55; if(score>=90&&score<=100) { System.out.println(“成绩为前100名"); } else if(score>=80&&score<90) { System.out.println(“成绩为前200名"); } else if(score>=70&&score<80) { System.out.println(“成绩为前300名"); } else if(score>=60&&score<70) { System.out.println(“成绩为前400名"); } else { System.out.println(“成绩为400开外"); } } }
这个代码时候简洁很多呢~
如果纯粹的是多分支判断,则在java中提供了另外一种语句——switch
switch语句语法格式:
switch(boolean表达式){
case const1:
statement1;
break;
case const2:
statement2;
break;
…… ……
[default:
statement default;
break;]
}
代码:
public class Demo4 { public static void main(String args[]) { int i=1; switch(i) { case 1: System.out.println(“条件1满足。"); break; //表示退出switch语句 case 2: System.out.println(“条件2满足。"); break; case 3: System.out.println(“条件3满足。"); break; case 4: System.out.println(“条件4满足。"); break; default: //如果一切条件都满足不了,则执行default语句 System.out.println(“没有任何条件满足。”); break; } } }
大家试下,如果去掉了break会出现什么情况?如果没有default语句,又会出现什么情况?
三目运算符
java语言提供了一个简单的条件赋值语句或条件表达式。
问题:当判断条件不论是“真”或“假”,均给同一变量赋值时,能否简化语句书写?
一般形式:boolean表达式1?表达式2:表达式3
代码:
public class Demo05
{
public static void main(String args[])
{
int i=20;
int j=50;
int max;
if(i>j)
{
max=i;
}
else
{
max=j;
}
System.out.println(“最大值MAX=”+max);
}
}
我们可以把红色部分代码省略掉
public class Demo06 { public static void main(String args[]) { int i = 20; int j = 50; int max; max=i>j?i:j; //判断i是否大于j?如果是则输出i,如果不是则输出j。主要是在赋值上使用 System.out.println(“最大值MAX=”+max); } }