7.流程控制
(1)流程图
流程控制
1.流程图
按结构分类
1.顺序结构
从上到下,从左往右。
(赋值:从右往左)
2.分支(条件)结构
2.1 if如果
结构:
if(条件){
满足条件执行的代码
}
if(条件){
满足条件执行的代码
}else{
不满足条件执行的代码
}
if(条件1){
满足条件1执行的代码
}else if(条件2){
满足条件2执行的代码
}else if(条件3){
满足条件3执行的代码
}else{
以上条件都不满足执行的代码
}
2.1.1 将考试的分数,转换成 等级
60以下 不及格
60到70 及格
70到80 中
80到90 良好
90以上 优秀
public class demo04{
public static void main(String[] args){
int score = 100;
if(score >=60){
if(score <70){
System.out.println("及格");
}
if(score >=70 && score <80){
System.out.println("中");
}else if(score >=80 && score <90){
System.out.println("良");
}else{
System.out.println("优");
}
}else{
System.out.println("不及格");
}
}
}
2.1.2 判断是否是闰年
口诀:四年一闰,(百年不闰,四百年再闰)
public class demo05{
public static void main(String[] args){
int year = 1900;
//先判断是否是100的倍数
if(year % 100 == 0){
if(year % 400 == 0){
System.out.println("闰年");
}else{
System.out.println("平年");
}
}else{
if(year % 4 == 0){
System.out.println("闰年");
}else{
System.out.println("平年");
}
}
}
}
if(year % 400 == 0 || year % 4 == 0 && year %100 != 0 ){
System.out.println("闰年");
}else{
System.out.println("平年");
}
System.out.println( (year % 400 == 0 || year % 4 == 0 && year %100 != 0) ? "闰年" : "平年");
2.1.3 判断是否是偶数
2.1.4 判断是否是水仙花数
水仙花数:每位的数的立方 之和 是本身。
2.1.5 大小写转换
2.2 switch
结构:
switch(需要判断的变量){
case 匹配的值1:
匹配之后的执行;
break;
case 匹配的值2:
匹配之后的执行;
break;
…
default:
没有匹配上的执行
break;
}
2.2.1 某月有几天
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month== 10 || month == 12){
System.out.println(31);
}
if(month == 4 || month == 6 || month == 9 || month == 11){
System.out.println(30);
}
if(month == 2){
System.out.println( (year % 400 == 0 || year % 4 == 0 && year %100 != 0) ? "闰年2月29天" : "平年2月28天");
}
switch(month){
case 1:
System.out.println(31);
break;
case 3:
System.out.println(31);
break;
case 5:
System.out.println(31);
break;
case 7:
System.out.println(31);
break;
case 8:
System.out.println(31);
break;
case 10:
System.out.println(31);
break;
case 12:
System.out.println(31);
break;
case 4:
System.out.println(30);
break;
case 6:
System.out.println(30);
break;
case 9:
System.out.println(30);
break;
case 11:
System.out.println(30);
break;
case 2:
System.out.println( (year % 400 == 0 || year % 4 == 0 && year %100 != 0) ? "闰年2月29天" : "平年2月28天");
break;
}
int month = 2;
int year = 2016;
int day = 0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
//break 中断,破坏。switch的break 退出 switch结构
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
day = (year % 400 == 0 || year % 4 == 0 && year %100 != 0) ? 29 : 28;
break;
default:
System.out.println("没有该月份");
break;
}
System.out.println(year+"年"+month+"月有"+day+"天");
2.2.2 用switch 去成绩分数转换为等级
int score = 100;
int num = score / 10;
switch(num){
case 0:case 1:case 2:case 3:case 4:case 5:s
System.out.println("不及格");
break;
case 6:
System.out.println("及格");
break;
case 7:
System.out.println("中");
break;
case 8:
System.out.println("良");
break;
case 9:
System.out.println("优秀");
break;
case 10:
System.out.println("优秀");
break;
}
default 默认的:匹配不上,走default。
break 退出 switch 结构,不写不退出,匹配case一直往下运行,直到遇见break。
case 的值的类型 整型 字符 字符串(jdk1.7以上) 枚举(enum)。
2.3 三元运算
3.循环结构
3.1 while
结构
while(循环条件){
循环体
}
3.1.1 从1累加的100。
int i = 1;
int sum = 0;
while( i <=100 ){
sum = sum + i;
i++;
}
System.out.println(sum);
3.2 do…while
结构
do{
循环体
}while(循环条件);
do{
sum = sum + i;
i++;
}while(i <=100);
While循环先 判断是否满足循环条件,满足才执行循环体。
Do…while循环 先 执行一次 循环体 ,然后在 判断是否满足循环条件,满足再循环,不满足不执行。
在同等条件下,do…while 要比 while 多执行一次循环体。
3.3 for
结构
for(初始化变量; 循环条件; 改变条件的){
循环体
}
循环三次
第一次:①②④③
第二次:②④③
第三次:②④③ ②
3.1.1累加
3.1.2 乘法表
break: 退出本层循环,继续外层循环
continue:略过本次循环,继续下次循环
return:结束方法
3.1.3 1到100的偶数和