java SE教程04
三種程序結構 – 重點
順序執行結構
- 執行完畢上一行代碼, 執行當前行代碼 (逐行執行)
判斷分支結構
- 根據判斷結果, 分為兩種情況, 分別執行不同區域的代碼
循環結構
- 再某些特定的情況下 ,一個代碼塊 循環的執行 !
任何程序的邏輯, 都可以通過這三種程序結構, 來搭配實現 !
判斷分支 if結構 – 重點
在進行if語句的編寫時, 如果判斷的代碼塊中只有一行代碼, 可以省略大括號
格式1:
if(boolean表達式){
//判斷代碼塊
}
與順序執行結構 有點區別: 判斷代碼塊中的代碼, 只有當關系表達式的結果為true時 , 才會執行 !
練習:
:您輸入的值過大
import java.util.Scanner;
public class Demo2{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print(“請輸入第1個數:”);
int a = input.nextInt();
System.out.print(“請輸入第2個數:”);
int b = input.nextInt();
System.out.print(“請輸入第3個數:”);
int c = input.nextInt();
System.out.print(“請輸入第4個數:”);
int d = input.nextInt();
//通過分支結構 ,找到最大的那個數字, 并輸出打印:
}
格式2:
if(boolean表達式){
當表達式結果為true時 , 執行這里的代碼
}else{
當表達式的結果位false時 ,執行這里的代碼
}
案例:
import java.util.*; public class Demo3{public static void main(String[] args){//用戶輸入兩個數字, 我將最大的數字輸出Scanner input = new Scanner(System.in);System.out.print("請輸入兩個數字,使用空格隔開:");int a = input.nextInt();int b = input.nextInt();if(a>=b){ System.out.println("您輸入的兩個數字中, 最大的是:"+a);}else{System.out.println("您輸入的兩個數字中, 最大的是:"+b);}} }格式3:
if(boolean表達式1){如果boolean表達式1的結果為true , 則這里代碼執行 }else if(boolean表達式2){如果boolean表達式1的結果為false,且boolean表達式2的結果為true , 則這里代碼執行...}else if(booolean表達式n){上述所有表達式 , 只有n的結果為true時 , 則這里代碼執行 }格式4.
if(boolean表達式1){
如果boolean表達式1的結果為true , 則這里代碼執行
}else if(boolean表達式2){
如果boolean表達式1的結果為false,且boolean表達式2的結果為true , 則這里代碼執行
…
練習:
設計一款程序, 需求: 提示用戶輸入學生的考試程序, 我們幫他判斷學生成績的等級 : 用戶輸入的內容 是整型的數字: 0-100; 成績==100 : 等級為 完美 成績>=90分: 等級為 優秀 成績>=70分: 等級為 良 成績>=60分: 等級為 及格 成績>=0 : 等級為不及格 其他成績: 提示輸入錯誤 !練習:
出租車計費方式:由里程錢數和等候時間錢數相加得出。 里程數前3公里10元,超過3公里到15公里部分每公里2元,15公里以上部分每公里3元。 等候時間每2分半1元,不足部分不要錢。 輸入公里數和等候秒數,輸出車費。 比如: 16公里,等候290秒,車費 = 10 + (15-3)*2 + (16-15)*3 + 1 = 38 - 提示用戶輸入里程 與 等待時長, 計算價格: import java.util.Scanner; public class Demo5{public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.print("請輸入公里數:");int km = input.nextInt();System.out.print("請輸入等候時長:");int s = input.nextInt();//計算等待時長需要的錢int money = s/150;if(km>15){money = money+(km-15)*3+(15-3)*2+10;}else if(km>3){money = money+(km-3)*2+10;}else{money+=10;}System.out.println("本次出租車的付款金額為:"+money+"¥");} }判斷分支結構 選擇 switch-case – 熟練掌握
語法結構:
switch(表達式){case 值1: //表達式的結果與當前值1相同則執行這里的代碼break;case 值2: //表達式的結果與當前值2相同則執行這里的代碼break;....case 值n: //表達式的結果與當前值n相同則執行這里的代碼break;default: //表達式的結果與上面的所有值都不同, 則執行這里的代碼break; }//xxx 注意: default 塊可以省略不寫 !例如:
int a = 10;
switch(a){
case 100:
System.out.println(“第一個選項”);
case 10:
System.out.println(“第二個選項”);
break;
case 11:
System.out.println(“第三個選項”);
}
表達式的結果類型 :
int byte char short再jdk7.0 switch 支持了字符串類型的表達式
練習
練習:
模擬命令解析器(菜單)
使用switch-case結構實現
輸入1打印顯示所有用戶,
輸入2顯示增加新用戶,
輸入3顯示修改用戶信息,
輸入4顯示刪除用戶,
輸入5顯示退出。
import java.util.Scanner;
public class Demo9{
public static void main(String[] args){
System.out.println(“———員工管理系統———”);
System.out.println(“———請操作: ———”);
Scanner input = new Scanner(System.in);
int type = input.nextInt();
}
循環結構
生活中帶有重復元素的事情:
使用循環的步驟:
1. 分析一個業務中 具備的 [循環元素 ]2. 分析這個循環元素中的 循環條件 和 循環的操作3. 套用循環的代碼 (可以是while循環, 可以是for循環)4. 檢查循環是否能夠退出 ! (除非遇到特殊的需求, 一般情況下盡量避免死循環的操作)面試題:
while循環與do while循環的區別:
特點:
while循環: 先判斷 , 再執行
do while 循環: 先執行 , 再判斷
區別:
區別只在于 如果循環條件最初就不滿足時 ,
while循環不會執行循環代碼塊,
而do while循環 會執行一次循環代碼塊
三種循環
while循環
語法格式:
while(1.boolean表達式){
//2.循環代碼塊
//當boolean類型表達式為true時 , 執行這里的代碼
}
執行流程:
jvm遇到while時 , 首先執行: 1. 判斷boolean表達式結果是否為true 2. 如果為true則執行循環代碼塊 ,否則跳過循環代碼塊!然后重復執行第一步, 第二步 , 直到boolean類型表達式結果為false , 則循環結束 ,跳過循環代碼塊 !練習:
向控制臺輸出數字: 1.2.3.4.5.6…100
boolean flag = true;
int count = 1;
while(flag){
if(count==100){
flag = false;
}
System.out.println(count++);
}
語法結構:
do{
//循環代碼塊
}while(boolean表達式);
do while循環:
先執行一次循環代碼塊, 再判斷boolean表達式練習:
向控制臺輸出數字: 100.99.98.97...1int count = 100; do{System.out.println(count--);}while(count==0);for循環
語法格式:
for(初始化循環參數;boolean表達式;更新循環變量){循環代碼塊 } for循環執行流程: 1. 初始化循環參數2. 判斷boolean類型表達式結果是否為true 為true則循環, false則循環結束3. 執行循環代碼塊4. 更新循環變量在這里4個步驟中循環的是 2 3 4for循環與while循環:
while(true){} 等價于: for(;true;){}//1. 定義循環變量 int count = 1;//2. 判斷boolean表達式 while(count <=100 ){//3. 循環體執行//4.更新循環變量;count++; }//累加: 1+2+3+4...+100 int sum = 0; //1. 定義循環變量 int count = 1; //2. 判斷循環條件 while(count<=100){//3. 執行循環代碼sum+=count;//4. 更新循環變量count++; }System.out.println(sum);
int sum = 0; for(int count=1;count<=100;count++){sum+=count; } System.out.println(sum);練習:
找出1-1000這些數字中的水仙花數 :
使用循環的步驟:
1. 分析一個業務中 具備的 [循環元素 ]100-10002. 分析這個循環元素中的 循環條件 和 循環的操作循環變量小于1000 , 循環操作:判斷一個數字是否為水仙花數3. 套用循環的代碼 (可以是while循環, 可以是for循環)for(int i=100;i<1000;i++){}有一個三位的未知數i , 求它是不是水仙花數999/100 = 9 999%100= 99/10 = 9 999%10 = 9958/100 = 9 958%100= 58/10 = 5 958%10 = 8900/100 = 9 900%100= 0/10 = 0 900%10 = 0計算百位數: 這個數字除以100 , 得到的結果就是百位數的數字計算十位數: 這個數字模以100 , 再除以10 , 得到的結果就是十位數計算個位數: 這個數字模以10 , 結果為個位數 !3 7 027 343 04. 檢查循環是否能夠退出 ! (除非遇到特殊的需求, 一般情況下盡量避免死循環的操作)跳出循環:
break; 這個關鍵字, 用于跳出代碼塊 , 再循環中的含義就是: 立即跳出并結束循環案例: for(int i=0;i<100;i++){if(i==10){break;}System.out.println(i); }跳出本次循環體
continue : 用于再循環中, 結束本次循環體, 開始下次循環體
for(int i=0;i<100;i++){if(i==10){continue;}System.out.println(i); }多重循環
循環的兩層嵌套
例如: for循環的嵌套:
外層循環里面的邏輯, 依然是具備循環色彩的!for(;;){for(;;){} }案例:
輸出10次 1-10for(int j=0;j<10;j++){
for(int i=1;i<=10;i++){
System.out.print(i+” “);
}
System.out.println();
}
多層循環打印行和列時 , 外層循環控制的是 有多少行 內層循環控制的是有多少列
案例:
通過循環嵌套, 打印99乘法表1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9....第1 行 有1列
第2 行 有2列
for(int i=1;i<=9;i++){//外層循環控制行, 表示有9行//列的長度是變化的, 與i相同for(int j=1;j<=i;j++){System.out.println(j+"*"+i+"="+(j*i));}}作業:
1. 使用*號, 打印三角形:
(1)
* * * * * * * * * * * * * * *for(){for(){} }(2)
----* ---*** --***** -******* *********for(){for(){}for(){}}(3)
—-*
—*
–*
-*
–*
—*
—-*
(4)
----* ---* * --* * -* * --* * ---* * ----*總結
以上是生活随笔為你收集整理的java SE教程04的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [中国近代史] 第四章测试
- 下一篇: Epicor ERP