3. 流程控制
阿新 • • 發佈:2017-05-20
adb 顯示 ora 整除 分享 max-width ace eba height
1. 順序結構
程序從上到下逐行執行
每個語句只被執行一次
中間沒有條件和跳轉
2. 分支結構
分支又稱條件語句,實現流程的控制
Java分支語句:
- If語句
- Switch語句
2.1 If語句
2.1.1 If
if(布爾表達式)
{
//如果布爾表達式為true將執行的語句
}
如果if語句中的大括號只有一語句,那麽可以省略大括號,不建議這樣做,容易出錯
練習1:
定義一變量 sex 表示人的性別。
如果sex 為 1,輸出小明是男的;
如果sex 為 0,輸出小明是女的;
易錯:
int i = 10; if (i = 10) { System.out.println(“我是10”); }
2.1.2 If-else
if(布爾表達式){
//如果布爾表達式的值為true
}else{
//如果布爾表達式的值為false
}
練習2:
定義一變量 sex 表示人的性別。
如果sex 為 1,輸出:小明是男的;
如果sex 為 0,輸出:小明是女的;
如果sex 不為0,也不為1,輸出:小明是可能去過泰國的;
2.1.3 If-elseif-else
if(布爾表達式 1){ //如果布爾表達式 1的值為true執行代碼 }else if(布爾表達式 2){ //如果布爾表達式 2的值為true執行代碼 }else if(布爾表達式 3){ //如果布爾表達式 3的值為true執行代碼 }else { //如果以上布爾表達式都不為true執行代碼 }
練習3:
定義一浮點數 f ,存放華陽中學3年2班學生小明的期末考試數學成績(100分制:0到100),
如果成績大於等於 90 ,輸出:華陽中學3年2班小明同學,期末考試數學成績為:優,
如果成績大於等於 80 ,輸出:華陽中學3年2班小明同學,期末考試數學成績為:良,
如果成績大於等於 70 ,輸出:華陽中學3年2班小明同學,期末考試數學成績為:中,
如果成績大於等於 60 ,輸出:華陽中學3年2班小明同學,期末考試數學成績為:差,
如果成績小於 60 ,輸出:華陽中學3年2班小明同學,期末考試數學成績為:不及格。
2.1.4 嵌套的If-else
if(布爾表達式 1){ ////如果布爾表達式 1的值為true執行代碼 if(布爾表達式 2){ ////如果布爾表達式 2的值為true執行代碼 } }
練習4:
根據輸入的年齡和性別顯示階段的姓名:如果是男性:0-3:男嬰;4-18:正太;19-28:歐巴;29-50:蜀黍;51及以後“爺爺”。如果是女性:0-3:女嬰;4-18:蘿莉;19-28:妹紙;29-50:熟女;51及以後“奶奶”
如果用戶沒有填寫姓名,則提示“請輸入姓名”,否則如果姓名長大於10則提示“姓名長度不能大於10”,
“男”.equals(“男”);
“長度”.length();
2.2 Switch語句
switch(表達式) {
case 表達式:
語句;
break;
case 表達式:
語句;
break;
default:
語句;
}
表達式只能是整數類型或者enum枚舉類型、String類型(JDK1.7),包含byte,short,int和char,不能是long
練習5:
近期跑男的節目組找到你,讓你替他們做一個選擇。你有八張卡片,分別為A-鄧超,B-Angelababy,C-李晨,D-陳赫,E-鄭愷,F-王祖藍,G-鹿晗,如果你選擇鄧超,請輸出“We are 伐木累!”,如果是Angelababy,請輸出“boom shakalaka!”,如果是李晨,請輸出“我們打一架吧!”,如果是陳赫,請輸出“你是豬嗎?”,如果是鄭愷,請輸出“噗”,如果是王祖藍,請輸出“完美!”,如果是鹿晗,請輸出“傻麅子!”,如果你選擇的不是上面的,請輸出“你是猴子請來的救兵嗎?”
3. 循環結構
滿足循環條件下,反復執行某一段代碼,這段被重復執行的代碼叫循環體。
包含4個部分:
- 初始化語句
- 循環條件
- 循環體
- 叠代語句(循環控制語句)
Java中主要的三種循環結構:
- while循環
- do-while循環
- for循環
3.1 while循環
初始化語句
while(循環條件){
循環體
叠代語句
}
只要循環條件為true,循環體會一直執行下去。一般用於不知道循環的次數時。
練習6:
輸出1-100整數
3.2 do-while循環
初始化語句
do{
循環體
叠代語句
} while(循環條件);
do-while循環和while循環相似,不同的是,do-while循環至少會執行一次。 do-while循環的循環條件後面必須有一個分號,這個分號表明循環結束
練習7:
用do-while實現練習6
3.3 for循環
for(初始化語句;循環條件;叠代語句){
循環體
}
練習8:
打印100以內不能被7整除的數,並求其和
3.4 循環嵌套
把一個循環放在另一個循環內
for(int i = 0;i < 5; i++){
for(int j = 0; j < 3; j++){
System.out.println(“i的值是:”+i+“,j的值是:”+j); }
}
嵌套循環的執行順序是從外到內
使用循環嵌套時,內層和外層循環的控制變量不能相同
循環嵌套結構的書寫,要體現循環層次的關系
避免太多和太深的循環嵌套結構
練習9:
打印9x9乘法表
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
…
3.5 循環控制
3.5.1 break
某些時候需要在某種條件出現時強行終止循環,而不是等到循環條件為false時才退出循環
break 主要用在循環語句或者 switch 語句中,用來跳出整個語句塊
break 跳出最裏層的循環,並且繼續執行該循環下面的語句。
練習10:
數組存放有 1 到 10,10個整數,輸出 1 到 10 (含10)中的偶數。要求必須使用到 break 關鍵字。
3.5.2 continue
continue 適用於任何循環控制結構中。作用是讓程序立刻跳轉到下一次循環的叠代。
在 for 循環中,continue 語句使程序立即跳轉到更新語句。
在 while 或者 do…while 循環中,程序立即跳轉到布爾表達式的判斷語句。
練習11:
使用continue,代替break,實現練習10
4. 練習和實踐
1、寫一個將十進制數轉換成二進制的程序。
2、寫一個用於計算兩個整數的最大公約數和最小公倍數的程序。
3、任意一個數,計算每一位的和。
4、輸出直角三角形、倒等腰三角形。
5、打印出所有的“水仙花數”,所謂“水仙花”是指一個三位數,其各位數字立方和等於該數的本身
例如:153是一個“水仙花數”
3. 流程控制