第1關:for循環的進階使用-嵌套循環(1)
1、編程要求:
是時候檢驗一下了,在start-end
區域中填充代碼打印出一個10*10
的矩形,效果如下:
注意:每次只允許輸出一顆星*
:
2、測試效果:
3、程序設計思路
(1)利用for的嵌套循環,外層代表行,內層代表列,每一個內層結束后換一行。
4、程序實現:
package step1; public class ForPractice1 { public static void test() { /*****start*****/ for(int i=0;i<10;i++){ for ( int j= 0;j <10; j++){ System.out.print("*"); } System.out.println(); } /*****end*****/ } }
第2關:for循環的進階使用-嵌套循環(2)
1、編程要求:
請在start-end
區域中填充代碼,實現兩個三角形的打印輸出,效果圖如下:
2、測試效果:
3、程序設計思路:
(1)采用for的嵌套循環,和上一題的矩形不同,並不是每行都有星,所以內層循環數要發生變換。
(2)考慮行和列的關系,行數等於列的*數,所以內層循環的次數應該與行數相同。
(3)分割線上下就是用自減運算符代替自增運算符,變量初始值發生改變。
4、程序實現:
package step2; public class ForPractice2 { public static void main(String[] args) { /*****start*****/ //在這里打印出正三角形 for(int x=0;x<10;x++){ for(int y=0;y<=x;y++){ System.out.print("*"); } System.out.println(); } System.out.println("——————————我是華麗的分界線——————————"); //在這里打印出倒三角形 for(int x=10;x>0;x--){ for(int y=x;y>0;y--){ System.out.print("*"); } System.out.println(); } /*****end*****/ } }
第3關:99乘法表
1、編程要求:
在右側Begin-End
區域中填充代碼,打印輸出一個99
乘法表,效果圖如下:
提示:文中兩個表達式之間的間隔使用的是 \t 制表符;
2、測試要求:
3、程序設計思路:
(1)注意觀察,和上一題進行比較,采用for的嵌套循環時,循環次數的規律和上一題是一樣的。
(2)注意第二個乘數是固定,所以第二個乘數應當是外層變量。
4、程序實現:
package step3; public class ForPractice3 { public static void main(String[] args) { /*****start*****/ for(int i=1;i<10;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.println(); } /*****end*****/ } }
第4關:綜合練習之ATM取款機
1、編程要求:
在右側編輯器Begin-End
中編寫代碼,完成和效果圖一致的功能。
2、測試效果:
我會對你的程序進行若干次測試,以此來判斷你是否完成了本關任務。
第一次測試會輸入: 100
2
999
100
1
需要你的程序輸出:
注意:平台會輸入數據,但是輸入的數據不會顯示在輸出結果中,所以標紅部分是我輸入的部分,不需要你輸出,
其余部分都需要你進行打印輸出,輸出的符號除了單引號和雙引號分號之外其他的全都要使用中文標點。
即預期輸出為:
歡迎使用中國人民銀行ATM取款機
輸入取款金額:
剩余金額:900,是否繼續('1':結束,'2':繼續):
輸入取款金額:
目前余額:900無法滿足您的取款需求!
輸入取款金額:
剩余金額:800,是否繼續('1':結束,'2':繼續):
取款結束!
3、程序設計思路:
(1)觀察題目:若輸入金額足夠支付,則會產生是否繼續選項。若不足以支付,不會產生繼續選項,自動跳轉到下一步取錢操作,所以存在continue跳出本輪循環。
(2)需要循環輔助重復內部的一系列取錢操作,沒有涉及到具體次數,所以采用while或者do...while都可以。
(3)需要多個if語句用於判斷是否進行對應操作。
4、程序實現:
package step4; import java.util.Scanner; public class ForPractice4 { public static void main(String[] args) { /*****start*****/ int money = 1000; int cash = 0; int isornot = 0; Scanner input =new Scanner(System.in); System.out.println("歡迎使用中國人民銀行ATM取款機"); do { System.out.println("輸入取款金額:"); cash = input.nextInt(); if(money >=cash) { money=money-cash; } else { System.out.println("目前余額:"+money+"無法滿足您的取款需求!"); continue; } System.out.println("剩余金額:"+money+",是否繼續('1':結束,'2':繼續):"); isornot=input.nextInt(); if(isornot==1) { break;} }while(money>0); System.out.println("取款結束!"); /*****end*****/ } }
第5關:選擇題
1、選擇題答案:D BC B