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{
//循环操作 //循环操作1
while(循环条件2){ do{
//循环操作2 //循环操作2
} }while(循环条件2);
} }while(循环条件1);
for(循环条件1){ while(循环条件1){
//循环操作1 //循环操作1
for(循环条件2){ for(循环条件2){
//循环操作2 //循环操作2
} }
} }
退出循环关键字: break 和 continue
区别: continue跳出当次循环,开始新的循环; break结束整个循环,执行循环语句块之后的代码;
相同点: 二者都用于循环,没有循环时,不要使用这两个关键字(switch中的break除外);
注意: 二者操作的都是当前循环, 嵌套循环时对其他循环无影响;