一. java三大流程控制
2. 条件控制:
3.循环控制
4. 关键字:
5. 循环的嵌套:
6.课堂练习:
1. 顺序控制:
依次执行代码
2. 条件控制:
(1)if语句:
①格式:
if(条件){
//实现逻辑}
②条件:
a.可以是一个常量表达式或包含变量的表达式
b.boolean类型c.{}可以省略(仅执行一行代码)
③练习:
public class Exercise1 {
public static void main(String[] args){
int score = 80;if(score>=90){System.out.println("iphone");}else if(score>70 && score<90){
System.out.println("ipod");}else if(score<=70 && score>60){
System.out.println("huawei");}
}
}
(2)if...else语句
①格式:
if(条件){
//实现逻辑}else{//实现逻辑}
(3)if(条件)...else if(条件)...else
①注意:
else 可以省略
②练习:public class Exercise2 {
public static void main(String[] args){//如果今天是周末,我们搞活动//如果今天是周内,我们上课//如果是周末,如果下雨,我们搞室内活动//如果是周末,如果不下雨,我们搞室外活动//如果人数大于5,打游戏;否则看书
boolean isWeekend = true;
boolean isRain = true;int joinPersonNum = 5;
if(isWeekend){
if(isRain){
if(joinPersonNum > 5){System.out.println("打游戏");}else{System.out.println("看书");}}else{System.out.println("室外活动");}}else{System.out.println("上课");
}
}
}
(4)switch case
①格式:
switch(判断值){
case 值1:break;case 值2:break;.......case 值n:break;
default:}
②注意:
a.switch后面的()一定不能省略b.switch后面跟的是整型或字符型(先转换成asc2码)c.case值只能是常量(1,2,'A','C')或常量表达式(2*3,'a'+3)d.break:跳出匹配到的条件,可以省略e.default:可以省略,可以放在任何位置
③练习:
public class Exercise3 {
public static void main(String[] args){
int ranking = 10;
//前三名800元,4-6名500元,其余100元switch(ranking){case 1:case 2:case 3:System.out.println("800");break;
case 4:case 5:case 6:System.out.println("500");break;default:System.out.println("100");}
}
}
注:条件语句彼此可以嵌套使用,一般建议三层.
3.循环控制
(1)while循环
①结构:
while(循环条件){//循环实现的代码}
②条件:
可以是一个变量,也可以是字面常量,也可以是表达式
③类型:
boolean
④练习:
public class Exercise4 {
public static void main(String[] args){
int maxNum = 11;int minNum = 10;
while(minNum<=maxNum){
System.out.println(minNum);minNum++;}
}
}
(2)do ... while循环
①结构:
do{//实现的代码}while(循环的条件);
②特点:
先执行后判断,不管条件是否成立,都会至少先执行一次do中的代码
③练习:
public class Exercise5 {
public static void main(String[] args){
int maxNum = 10;int minNum = 1;//打印1-10之间的自然数do{System.out.println(minNum);minNum++;}while(minNum<=maxNum);
}
}
(3)for 循环
①结构:
for(循环变量初始化 ;循环条件判断; 循环变量的改变){//循环需要实现的逻辑}三个部分都可以省略.但分号不能省略
②执行流程:
a.循环变量初始化,在整个循环过程中,只会执行一次b.进行循环条件的判断,如果满足条件则执行,否则结束c.当循环条件满足后,执行代码,最后进行循环变量的改变
③练习:
public class Exercise6 {
public static void main(String[] args){
int minNum = 1;final int MAX_NUM = 50;int sum = 0;
//1-50之间偶数的和for(int i = 1;i<=MAX_NUM;i++){
if(i%2 == 0){sum+=i;}
}System.out.println("sum="+sum);
}
}
4. 关键字:
①
(1)continue(跳出当次循环):
在循环的代码体中,如果遇到continue, 则会跳出当次循环,循环体内continue之后的代码都不会执行,并且循环变量进行一次改变操作,之后再次进行条件判断,如果满足条件,则进入循环,否则直接结束循环; 跳出的仅是continue外层直接包裹的循环.
(2)break(跳出整个循环):在循环的代码体中,如果遇到break,则会跳出本循环代码块,break后的代码不会执行。并且整个循环的过程结束。break后退出的循环也是直接包围break的循环.
②课堂练习:
a.求1-50(两边都闭区间), 所有偶数的和.最终输出结果.public class Exercise7 {
public static void main(String[] args){int minNum = 1;final int MAX_NUM = 50;int sum = 0;
//1-50之间偶数的和while(minNum<=MAX_NUM){sum += (minNum%2==0)?minNum:0;minNum++;}
System.out.println(sum);
}}
b.求1-100自然数,其中所有偶数的和,所有奇数的和,并且求所有偶数的和与所有奇数的和的差.
public class Exercise8 {
public static void main(String[] args){int evenSum = 0;int unevenSum = 0;final int MAX_NUM = 100;
for(int i = 1;i<=MAX_NUM;i++){if(i%2 == 0){evenSum+=i;}else{unevenSum+=i;}
}System.out.println(evenSum - unevenSum);
}
}
5. 循环的嵌套:
层数无限制,编译不会出错,但最多两层.
6.课堂练习:
public class Exercise9 {
/*
输出: *
**
***
****
*****
*/
public static void main(String[] args){for(int j = 1;j<=5;j++){for(int i = 1;i<=j;i++){System.out.print("*");}System.out.println("");}
/*
输出:
*****
****
***
**
*
*/
System.out.println();for(int j = 1;j<=5;j++){for(int i =1;i<=(6-j);i++){System.out.print("*");}System.out.println("");}}
}