程序流程控制分为:
顺序结构 判断结构 选择结构 循环结构
判断语句——if
if代表如果的意思;else代表否则的意思 所以if......else可以理解为如果怎样就怎样怎样、否则就怎样怎样
if语句 三种格式:
1、if(条件表达式){ //如果满足就执行不满足就结束
执行语句;
}
2、if(条件表达式){ //如果满足条件就执行“执行语句1”,否则的话执行“执行语句2”
执行语句1;
} else{
执行语句2;
} 这种表达式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。
3、if(条件表达式){ //代表的是多重条件时满足哪一个条件就执行该条件的执行语句否则执行else下边的执行语句
执行语句;
} else if (条件表达式){
执行语句;
} …… else{
执行语句; }
如果if语句后面不加{},只能控制一条语句,加{}是控制整个{}里面的语句。
if的嵌套格式:
int i = 1, j= 2;
if(i==1){
if(j==1){
System.out.println("1");
}else{
System.out.println("2");
}
}else{
if(j==1){
System.out.println("3");
}else{
System.out.println("4");
}
}
if语句和三元运算符的区别:
三元运算符可以称之为if语句的简写形式,但是只要简写就会有一定的弊端。
三元运算符,是一种运算符号,也就是说每次执行后,必须有结果。
if...else是语句,只是控制流程,执行后不一定有结果
if...else可以里面有语句,并输出结果,三元运算符不可以。
if语句什么时候使用:
1,当对值进行判断的时候
2,当对数据区间进行判断的时候
3,当结果是布尔类型的时候
if语句特点:
1,每一种格式都是单条语句。
2,条件表达式无论写成什么样子,只看最终的结构是否是true 或者 false; 只看条件表达式的最终结果是
选择结构——switch
switch语句 格式:
switch(表达式){
case 取值1:
执行语句 ; break;
case 取值2:
执行语句;
break;
...... ......
default:
执行语句;
break;
}
switch 结束只有两种情况
1,当程序执行过程中遇到了break
2,当程序执行到了末尾处
应用 switch需要注意的两个细节
1,当switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里 的执行语句,不会再对case值进行判断,应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break
int month = 2; switch (month){ case 3: case 4: case 5: System.out.println(month+"月是春天"); case 6: case 7: case 8: System.out.println(month+"月是夏天"); break; case 9: case 10: case 11: System.out.println(month+"月是秋天"); break; case 12: case 1: case 2: System.out.println(month+"月是冬天"); break; default: System.out.println("对不起你的输入有误,请检查之后重新输入");
2,当我们把 default 不是写在最后,default 里面还没有写break的是时候,switch里的表达式与各个case里 的值都不匹配的时候,上面两个条件同时满足的话,程序在default里执行完了还会再去执行case里的语句
int i = 8; switch (i){ case 4: System.out.print("1"); break; default: System.out.print("2");//当程序执行到了default但是他没有break,下面的case值不再判断,程序继续执行 case 5: System.out.print("3"); case 6: System.out.print("4"); break; //遇到break,程序跳出 case 7: System.out.print("5"); }
这里要注意的就是case穿透的问题
switch语句特点:
1,switch语句选择的类型只有五种:byte,short,int , char,String字符串。
2,case与default之间没有顺序。先执行第一个case,没有匹配的case执行default。
3,结束switch语句的两种情况:遇到break,执行到switch语句结束。
4,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
switch和if的区别:
1,如果对几个具体的值进行判断,可以使用switch,也可以使用if,但是建议使用switch效率会更高一些。
2,如果是对区间进行判断或者boolean结果的判断,只能用if。因为switch里面不接收boolean的值
循环结构——while、for
while语句格式:
while(条件表达式){
执行语句; 控制循环次数;
}
do while语句格式:
do{
执行语句;
控制循环次数;
}while(条件表达式);
do while特点是条件无论是否满足, 循环体至少执行一次。 while和do while的区别: dowhile语句会先执行循环体,再去判断条件,也就是说无论条件是否满足他都至少要执行一次循环体,先执行 再判断 while 先判断条件,只要条件不满足就不在执行循环体了,先判断,再执行.
for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;(循环体)
}
while和for的区别:
1,for里面的每个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
2,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
3,最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
break(跳出), continue(继续)
break语句: 应用范围: 选择结构和循环结构。
continue语句: 应用于循环结构。
1,这两个语句离开应用范围,存在是没有意义的。
2,这个两个语句单独存在下面都不可以有语句,因为执行不到。
3,continue语句是结束本次循环继续下次循环。
4,标号的出现,可以让这两个语句作用于指定的范围。
什么情况下,使用哪个语句。
1, 当对某几个值进行判断的时候,可以使用if语句,或者switch语句,建议switch,但是,使用switch要注意,它只能操作五种类型的值,byte short,int,char,String如果是五种类型以外的值,需要使用if。
2,如果对数据区间进行判断,或者对运算结果是boolean类型的进行判断。使用if语句。
3,当需要某些语句执行很多次的时候,使用循环结构。如果定义变量只为循环增量存在时,可以使用for语句。(如果对一个条件进行判断使用if,//如果对该条件进行多次判断,使用while。)
4,如果要结束循环,可以控制循环条件,或者通过break语句完成。如果要控制循环的流程,是否该继续执行,可以通过continue或者break来完成。
5, break结束当前所在循环。continue结束本次循环,进入下一次循环。
总结:
判断语句if 主要用于对程序的判断 如果为true就执行当前的执行语句 如果为false则执行else中的语句
选择结构switch 在switch语句中主要要注意的就是case的穿透问题
循环结构
while和do....while的区别在于do......while先执行一次循环体在进行判断、所以就算条件不满足的情况下do.......while也先执行一次循环体
for语句 注意for的嵌套、一般有两次循环
break 当条件满足时直接跳出循环
continue 当条件满足时结束此次循环进行下次循环
break和continue都是只在当前方法中有效 在标记中只在标记的大括号中有作用
两个都是出了大括号不会起作用的