程序流程控制语句
分四类:
a) 判断结构(if)
b) 选择结构(switch)
c) 循环结构(do while;while;for)
d) 其他流程控制语句(break;continue)
一、判断结构(if)
1、if语句三种格式:
1, if(条件表达式) 3, if(条件表达式)
{ {
执行语句; 执行语句;
} }
2, if(条件表达式) else if (条件表达式)
{ {
执行语句; 执行语句;
} }
else ……
{ else
执行语句; {
} 执行语句;
}
2、If语句特点:
a) 每一种格式都是单条语句。
b) 第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。
c) 条件表达式无论写成什么样子,只看最终的结构是否是true或者false。
3、注意事项:
1) 第三种格式中只要有一个满足条件的就结束。
2) if到第一个分号“;”为止。
3) ifelse 结构 简写格式:变量=(条件表达式)?表达式1:表达式2;相当于三元运算符。
4) 三元运算符:好处:可以简化if else 代码。弊端:因为是一个运算符,所以运算完必须要有一个结果。
4、练习:
1,需求1:根据用户定义的数值不同。打印对应的星期英文。
class IfTest
{
public static void main(String[] args)
{
//需求1:根据用户定义的数值不同。打印对应的星期英文。
int num = 1;
if(num==1)
System.out.println("monday");
else if(num==2)
System.out.println("tsd");
else
System.out.println("nono");
}
}
2,需求2:根据用于指定月份,打印该月份所属的季节。
class IfTest
{
public static void main(String[] args)
{
//需求2:根据用于指定月份,打印该月份所属的季节。
//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(x+"夏季");
else if(x==9 || x==10 || x==11)
System.out.println(x+"秋季");
else if(x==12 || x==1 || x==2)
System.out.println(x+"冬季");
else
System.out.println(x+"月份不存在");
if(x>12 || x<1)
System.out.println(x+"月份不存在");
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+"冬季");
}
}
二、选择结构
1、switch语句格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
default:
执行语句;
break;
}
2、switch语句特点:
工作原理:用switch后小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了,就执行哪个case后面的语句,如果没有相同的则执行default后面的语句。
细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;
2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;
3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。
4):结束switch语句的两种情况:遇到break,执行到switch语句结束。
3、练习
需求2:根据用于指定月份,打印该月份所属的季节。
class SwitchTest
{
public static void main(String[] args)
{
//需求2:根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
int x = 4;
switch(x)
{
case 3:
case 4:
case 5:
System.out.println(x+"春季");
break;
case 6:
case 7:
case 8:
System.out.println(x+"夏季");
break;
case 9:
case 10:
case 11:
System.out.println(x+"秋季");
break;
case 12:
case 1:
case 2:
System.out.println(x+"冬季");
break;
default:
System.out.println("nono");
}
System.out.println("Hello World!");
}
}
注意事项:
if与switch语句。
具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而是符合byte short int char这四种类型。
虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
三、循环结构
代表语句:while,do while, for
1,while语句格式:
while(条件表达式) do while语句格式:
{ do
执行语句; {
} 执行语句;
}while(条件表达式);
while:先判断条件,只有条件满足才执行循环体。
do while: 先执行循环体,在判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。
2,while与do while 举例:
class WhileDemo
{
public static void main(String[] args)
{
/*定义初始化表达式;
while(条件表达式)
{
循环体(执行语句);
}
*/
int x = 1;
while(x<3)
{
System.out.println("x="+x);
x++;
}
int x1 = 1;
do
{
System.out.println("do : x1="+x1);
x1++;
}
while (x<3);
int y = 1;
while(y<3)
{
System.out.println("y="+y);
y++;
}
}
}
3,for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
4,while与for注意事项:
注:
a) for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止,
b) while 与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放,而while循环使用的变量在循环结束后还可以继续使用。
c) 最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
for和while的示例:
class ForDemo
{
public static void main(String[] args)
{
/*
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
*/
for(int x = 0; x<3 ; x++)
{
System.out.println("x="+x);
}
//System.out.println("x===="+x);
int y=0;
while(y<3)
{
System.out.println("y="+y);
y++;
}
System.out.println("y===="+y);
}
}
通过示例的总结如下:
1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。
for语句执行完毕。该变量在内存中被释放。
2,for和while可以进行互换。如果需要定义循环增量。用for更为合适。
3,什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
for执行时小小注意点:
a) 条件既不是真也不是假,编译失败。
class ForTest
{
public static void main(String[] args)
{
for(System.out.println("a"); System.out.println("b");System.out.println("c"),x++)
{
System.out.println("d"); //编译失败,条件既不是真也不是假,编译失败。
}
int x = 1;
for(System.out.println("a"); x<3 ;System.out.println("c"),x++)
{
System.out.println("d");
x++;
}
//结果为adcdc
}
}
b) 无限循环的最简单表现形式:
for(;;){}
while(true){}
小小总结:
ifswitch do while while for
这些语句什么时候用?
1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。但是建议使用switch,效率相对较高。
2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。
3)、当某些语句需要执行很多次时,就用循环结构。
四、其他流程控制语句
break(跳出),continue(继续)
break语句:应用范围:选择结构和循环结构。
break:作用于switch ,和循环语句,用于跳出,或者称为结束。
break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。
continue语句:应用于循环语句。
continue:只作用于循环结构,继续循环用的。
作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。
注:
a) 这两个语句离开应用范围,存在是没有意义的。
b) 这两个语句单独存在下面都不可以有语句,因为执行不到。
c) continue语句是结束本次循环继续下次循环。
d) 标号的出现,可以让这两个语句作用于指定的范围。
寄语:学习语句时,才发现数学是如此的重要,虽然我没有时间再回到学校学习数学了,加油吧!。。。 ——濛濛