2.6 程序流程控制
判断结构
选择结构
循环结构
2.6.1判断结构
class IfDemo
{
public static void main (String[] args)
{
intx=3;
if(x>1)
{
System.out.println(“Hello World!”);
}
}
注:if else结构 简写格式: 变量=(条件表达式)?表达式1:表达式2;
三元运算符:
好处:可以检查 if else 代码
弊端:因为是一个运算符,所以运算完必须要有一个结果
if练习:
class IfDemo
{
public static void main (String[] args)
{
//根据用户定义的数值不同,打印对应的星期英文。
int num=2;
if (num==1)
System.out.println(“”);
else if (num==2)
System.out.println(“”);
…
else
System.out.println(“the wrong number”);
//需求:根据用户指定的月份,打印该月份所属的季节。3、4、5-春;6、7、8-夏;9、10、11-秋;12、1、2-冬。
int x=4;
if(x==3||x==4||x==5) //用短路的或,是因为只要有一个条件满足,后面的就不用再看了
System.out.println(x+”春季”);
else if (x==6||x==7|x==8)
System.out.println(“”);
else if(x==9||x==10|x==11)
System.out.println(“”);
else if (x==12||x==1||x==2)
System.out.println(“”);
else
System.out.println(“月份不存在”);
//现在有一个问题是,用区间表示三个或对于前几个是可以的,但是对于12、1、2月份怎么办?
//换一种思路,把1~12以外的数先排出去
if(x>12||x<1)
System.out.println(“月份不存在”);
else if (x>=3 && x<=5)
System.out.println(“”);
else if (x>=6 && x<=8)
System.out.println(“”);
else if (x>=9 && x<=11)
System.out.println(“”);
else
System.out.println(“冬天”);
}
2.6.2 选择结构
switch语句
格式:
switch(表达式) //byte short int char,一般都是int 和 char
{
case 取值1:
执行语句;
break; //跳出switch 语句
…
default:
执行语句;
break; //可以省略
}
注意,switch的执行从第一个具体的case开始执行,所有case都不是,才会执行default.
switch什么时候执行完呢?碰到braek或者大括号才行。
E.g.
先从case4开始,不符合;case 6 ,不符合;case 2 ,不符合;default,输出d。此时switch并没有结束(因为既没有碰到break ,也没有碰到大括号),此时,它会继续向下执行 ,而不判断case!!
把下面所有能执行的语句全部执行完,直到碰到break 或者碰到大括号为止。
所以本题,会输出 d、a、b,碰到break,over
练习:
class IfDemo
{
public static void main (String[] args)
{
int x=4;
switch(x)
{
case3:
case4:
case5:
System.out.println(“春天”); //执行同样的东西就可以写一起
break;
…
default :
System.out.println(“nono”);
}
注:
具体什么场景下应用哪种语句呢?
如果判断的具体数值不多,而且符合byte/int/short/char的数据类型,虽然两个语句都可以使用,建议使用switch,因为效率较高。
其他情况:区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
2018.5.25