順序結(jié)構(gòu)
順序結(jié)構(gòu)是程序中最簡單最基本的流程控制瘾境,沒有特定的語法結(jié)構(gòu)街夭,按照代碼的先后順序触菜,依次執(zhí)行,程序中大多數(shù)代碼都是這樣執(zhí)行的兽埃。
流程控制
- 分支
- 循環(huán)
- 判斷
分支與判斷
if 語句的注意事項(xiàng)
- 關(guān)系表達(dá)式的結(jié)果必須為 boolean 類型
- if 語句控制體如果是一條語句侥钳,大括號(hào)可以省略
if(表達(dá)式 1){
//分支 一
}else if(表達(dá)式 2){
//分支 二
}else{
//分支 三
}
if 判斷要注意的數(shù)據(jù)處理
- 正確數(shù)據(jù)
- 錯(cuò)誤數(shù)據(jù)
- 邊界數(shù)據(jù)
選擇結(jié)構(gòu)(switch語句)
switch 表示這是 switch 語句
格式:
case 后面是要和表達(dá)式進(jìn)行比較的值
break; 表示中斷,結(jié)束的意思
default: 當(dāng)所有值都和表達(dá)式不匹配時(shí)柄错,執(zhí)行 default
switch(表達(dá)式){
case 值1:
語句體 1;
break;
case 值2:
語句體 2;
break;
default:
語句體;
break; // 最后的 break 可以省略
}
表達(dá)式的取值
- 取值有 byte short int char
- jdk5 以后可以是枚舉
- jdk7 以后可以是 string
注意
- case 后面只能是常量舷夺,不能是變量
- case 后面的值不能重復(fù)
- default 可以省略,但是不建議
- break 可以省略鄙陡,但是會(huì)出現(xiàn) case 穿透冕房,建議不省略
- 程序遇 break 或執(zhí)行到末尾結(jié)束
if 語句 和 switch 的區(qū)別
- if語句
- 針對(duì)布爾類型
- 針對(duì)一個(gè)范圍的判斷
- 針對(duì)幾個(gè)常量值的判斷
- switch 語句
- 針對(duì)幾個(gè)常量值的判斷
循環(huán)
循環(huán)語句的組成
- 初始化語句
- 判斷條件語句 (boolean)
- 循環(huán)體語句
- 控制條件語句
while 循環(huán)語句 (布爾循環(huán))
如果是一個(gè)明確范圍的循環(huán),用 for
如果是不明確要做多少次趁矾,用 while 循環(huán)較為合適
比如耙册,吃葡萄:
不管多少顆,只要有毫捣,我就吃详拙,沒了就不吃
while(判斷條件語句){
//循環(huán)體語句;
//控制條件語句;
}
do...while 循環(huán)
do...while 至少執(zhí)行一次循環(huán)體
//初始化語句;
do{
//循環(huán)體語句;
//控制條件語句;
}
}while(判斷條件語句);
注意死循環(huán)
- 控制條件語句
- while(true)
- for( ; ; )
跳轉(zhuǎn)循環(huán)控制語句
- break 跳出單層循環(huán)
- continue 跳出本次循環(huán)帝际,進(jìn)入下一次執(zhí)行
- return 返回
return 的作用不是結(jié)束循環(huán)的,面是結(jié)束方法
break 跳出指定循環(huán)
//給循環(huán)起個(gè)名字
for1:for(int x=0;x<10;x++){
for2:for(int y=0;y<10;y++){
if(y == 5){
//break for1; 跳出外層循環(huán)
//break for2; 跳出內(nèi)層循環(huán)
}
}
}
練習(xí)題
小明的媽媽每天給他 2.5 元饶辙,他會(huì)存起來蹲诀,存到第五天或者五的倍數(shù)天的時(shí)候會(huì)花掉 6 元,問什么時(shí)候存夠 100 元
//不知道要循環(huán)多少次弃揽,所以用死循環(huán)脯爪,當(dāng)條件滿足時(shí),用 break 結(jié)束循環(huán)
int day = 1; // 天
double money = 0; // 錢
while(true){
money += 2.5;
if(money >= 100){
System.out.println("第"+day+"天存夠了100元");
break;
}
if(day % 5 == 0){
money -= 6;
System.out.println("第"+day+"天花了6元錢");
}
day ++;
}