1、程序流程
1.1 结构化程序有三种流程结构:
顺序结构:当没有任何流程控制语句时,程序默认的执行顺序,从上而下,一行一行执行;
选择结构(分支结构):如果条件M为真,执行A,否则执行B
循环结构:若条件M为真,则执行循环体代码,执行完一次后,在判断条件是否为真,为真则继续重复之前的过程,直到条件M为假,退出循环。
选择流程控制语句 : if…else语句
//多分支的if语句if(判断条件1) {当条件1成立时,代码执行}else if(条件判断2){条件2成立时,执行本代码}...else{以上条件都不成立时,执行此代码}//代码实例int score = 72;if(score<60 ){System.out.println("学渣泪在流");}else if(score>= 60 && score<70){System.out.println("学弱打酱油");}else if(score<80){System.out.println("学民好害羞");}else if(score<90){System.out.println("学神要加油");}else{System.out.println("学霸实在牛");}//if语句嵌套int week=5;int weather=25;if(week==6 || week==7){if(weather>30){System.out.println("游泳")}else{System.out.println("爬山")}}else{if(weather>18 && weather<25){System.out.println("谈业务")}else{System.out.println("查资料")}}
switch….case语句
switch(变量){
case 数值1:
代码; 当变量的值和数值1相等时,执行
case 数值2:
代码; 当变量的值和数值2相等时,执行
……
default:
代码; 当变量的值和以上所有case后的数值都不相等时,执行
break;
}
int day1 = 1;switch(day1){case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");case 4:System.out.println("星期四");case 5:System.out.println("星期五");break;default:System.out.println("周末");break;}//break 跳出switch...case语句,提前终止switch/* 1、case 后可以有break,也可以没有,没有break时,会造成case语句贯穿执行case语句时,如果遇到break,switch语句就结束了;如果没有遇到break,程序继续向下执行,直到遇到break为止;2、case后一定是一个数值,并且数值的类型一定和switch后变量类型一致,case后的数值不能重复3、switch语句后,只支持:byte、short、int、char、String(1.7版本后)类型*/// if 和 switch的区别:if可以判断相等关系,区间范围; switch只能判断相等关系
循环流程控制语句: 1、while循环;2、do…while循环;3、for循环;
1、while循环
while(判断条件){
循环体;先进行条件判断,条件成立,执行循环体;继续进行条件判断,只要条件成立
就继续重复之前的操作,直到条件不成立为止;
}
代码示例: int i =1;
while(i<=10){
System.out.println(i);
i++;
}
2、do…while循环
do{
循环体;
}while(判断条件);
代码示例: do{
System.out.println( i );
i++;
}while(i>10);
// while和do… while的区别: while是先判断在执行; do…while是先执行在判断,至少执行一次;
3、for循环
for(初始值; 判断条件; 变化规则 ){<br /> 循环体; //1、初始化;2、条件判断,成立;执行循环体;迭代变化; .....重复2<br />}<br />//值确定了循环次数时,使用for循环; 不确定循环次数时,使用while循环<br />代码示例:
for(int i=1;i<=10;i++){if(i==5){//break;continue;}System.out.println(i);}//计算100以内所有偶数相加的和int result = 0;for(int i=1;i<100;i++){if(i%2 == 0){result += i;}}System.out.println("100以内偶数和:"+result);//break 跳出for循环,结束for循环//continue 跳出当前次的循环,继续执行下一次循环int result2 = 0;for(int i=1;i<100;i++){if(i%2 != 0){continue;}result2 += i;}System.out.println(result2);
循环进阶—-嵌套循环: 可以由上述3种基本循环任意嵌套、组合,只要单独每 个循环语法正确即可
外层循环多用来控制次数,且内外层的循环变量不要重复;外层循环变量变化一次,内层循环变化一遍
while(循环条件){ do{//循环操作 //循环操作1while(循环条件2){ do{//循环操作2 //循环操作2} }while(循环条件2);} }while(循环条件1);for(循环条件1){ while(循环条件1){//循环操作1 //循环操作1for(循环条件2){ for(循环条件2){//循环操作2 //循环操作2} }} }
退出循环关键字: break 和 continue
区别: continue跳出当次循环,开始新的循环; break结束整个循环,执行循环语句块之后的代码;
相同点: 二者都用于循环,没有循环时,不要使用这两个关键字(switch中的break除外);
注意: 二者操作的都是当前循环, 嵌套循环时对其他循环无影响;
