迴圈結構-for-while-do..while
第一題:語法練習
-
語法點:運算子,while,if
-
-
編寫步驟:
-
定義類 Test1
-
定義 main方法
-
定義變數i為0,i2為10
-
使用第一個while迴圈,當條件為
i小於5
時,則進入迴圈 -
迴圈內,i自增,i2自增
-
迴圈內,使用if判斷,當
i大於等於 2
並且i2小於15
時,同時輸出i和i2的值 -
使用第二個while迴圈,當條件為
i2小於20
時,則進入迴圈 -
迴圈內,i自增,i2自增
-
迴圈內,使用if判斷,當
i大於8
或者i2小於等於18
時,同時輸出i和i2的值
-
-
參考答案:
public class Test1 {
// 定義變數i為0,i2為10
int i = 0;
int i2 = 10;
// 使用第一個while迴圈,當條件為i小於5時,則進入迴圈
while (i < 5) {
// 迴圈內,i自增,i2自增
i++;
i2++;
// 使用if判斷,當i大於等於 2 並且i2小於15 時,同時輸出i和i2的值
if (i >= 2 && i2 < 15) {
System.out.println("i:" + i + ", i2:" + i2);
}
System.out.println("-----------------------");
// 使用第二個while迴圈,當條件為i2小於20 時,則進入迴圈
while (i2 < 20) {
// 迴圈內,i自增,i2自增
i++;
i2++;
// 迴圈內,使用if判斷,當i大於8 或者i2小於等於18 時,同時輸出i和i2的值
if (i > 8 || i2 <= 18) {
System.out.println("i:" + i + ", i2:" + i2);
}
}
}
第二題:語法練習
-
語法點:變數,運算子,if
-
按步驟編寫程式碼,效果如圖所示:
-
編寫步驟:
-
定義類 Test2
-
定義 main方法
-
定義變數 discount為1, totalPrice為550
-
判斷當
totalPrice >=500
,discount賦值為0.5 -
判斷當
totalPrice >=400
且<500
時,discount賦值為0.6 -
判斷當
totalPrice >=300
且<400
時,discount賦值為0.7 -
判斷當
totalPrice >=200
且<300
時,discount賦值為0.8 -
輸出totalPrice.
-
輸出totalPrice 與 discount 的積
-
-
參考答案:
public class Test2 { public static void main(String[] args) { // 定義變數 discount為1, totalPrice為550 double discount = 1 ; int totalPrice = 550; // 判斷當totalPrice >=500 ,discount賦值為0.5 if (totalPrice >= 500){ discount = 0.5; }else if (totalPrice >=400 && totalPrice < 500) { // 判斷當totalPrice >=400 且<500時,discount賦值為0.6 discount = 0.6; } else if (totalPrice >=300 && totalPrice < 400) { // 判斷當totalPrice >=300 且<400時,discount賦值為0.7 discount = 0.7; } else if (totalPrice >= 200 && totalPrice < 300) { // 判斷當totalPrice >=200 且<300時,discount賦值為0.8 discount = 0.8; } // 輸出totalPrice. System.out.println("totalPrice:"+totalPrice); // 輸出totalPrice 與 discount 的積 System.out.println("totalPrice的discount:"+(totalPrice*discount)); } }
第三題:語法練習
-
語法點:運算子,for,while
-
按步驟編寫程式碼,效果如圖所示:
-
編寫步驟
-
定義類 Test3
-
定義 main方法
-
使用for迴圈,初始化變數r為10,當
r>0
時,進入迴圈 -
for迴圈內,定義變數c,賦值為r
-
for迴圈內,使用while迴圈,當
c>=0
時,輸出c,再將c減2賦值給c -
for迴圈內,while迴圈外,r除以c賦值給r
-
-
參考答案:
public class Test3 { public static void main(String[] args) { // 使用for迴圈,初始化變數r為10,當r>0時,進入迴圈 for (int r = 10; r > 0; ) { // for迴圈內,定義變數c,賦值為r int c = r; // or迴圈內,使用while迴圈,當c>=0時,輸出c,再將c減2賦值給c while (c >= 0) { System.out.print(c + " "); c -= 2; } // for迴圈內,while迴圈外,r除以c賦值給r r /= c; } } }
第四題:語法練習
-
語法點:方法,運算子,for,while
-
按步驟編寫程式碼,效果如圖所示:
-
編寫步驟
-
定義類 Test4,定義 main方法
-
main方法中,定義int型別變數 a為10,b為20,c為30
-
定義 method1方法, 定義變數a為-5,變數b為--a,判斷a為偶數,則a賦值為++b,否則b賦值為--a.列印a,b
-
定義 method2方法, 定義變數a為0,使用while迴圈,判斷a<=5,進入迴圈.
-
while迴圈內部,使用for迴圈,初始化int型別變數b為1,當b<=5時進入迴圈, 步進表示式b++
-
for迴圈內,不換行輸出i並拼接" "
-
for迴圈外,輸出換行.
-
j自增.
-
main方法呼叫method1方法,method2方法
-
輸出a,b,c
-
參考答案:
public class Test4 { public static void main(String[] args) { // 3.main方法中,定義int型別變數 a為10,b為20,c為30 int a = 10, b = 20, c = 30; // 呼叫 method1 method1(); // 呼叫 method2 method2(); System.out.println(); System.out.println(a); System.out.println(b); System.out.println(c); } // 定義 method2方法, 定義變數a為0,使用while迴圈,判斷a<=5,進入迴圈. private static void method2() { int a = 0; // while迴圈內部,使用for迴圈,初始化int型別變數b為1,當b<=5時進入迴圈, 步進表示式b++ while (a <= 5) { // for迴圈內,不換行輸出i並拼接" " for (int b = 1; b <= 5; b++) { System.out.print(b + " "); } // for迴圈外,輸出換行. System.out.println(); // a自增. a++; } System.out.println("----------"); } // 定義 method1方法, 定義變數a為-5,變數b為--a,判斷a為偶數,則a賦值為++b,否則b賦值為--a.列印a,b public static void method1() { int a = -5; int b = --a; if (a % 2 == 0) { a = ++b; } else { b = --a; } System.out.println(a); System.out.println(b); System.out.println("----------"); } }
第五題:語法練習
-
語法點:運算子,for,if
-
按步驟編寫程式碼,效果如圖所示:
-
編寫步驟
-
定義類 Test5
-
定義 main方法
-
定義變數jj為20,a為0,b為0
-
使用for迴圈,初始化值ii為0,當
ii<jj
時進入迴圈,步進表示式為ii+=2,jj自減 -
迴圈內,使用if判斷ii被3整除,ii賦值給a,並輸出ii拼接"Hello"
-
不被3整除,ii賦值給b,並輸出ii拼接"World"
-
迴圈外,按照格式,列印a與b的乘積
-
-
參考答案:
public class Test5 { public static void main(String[] args) { // 定義變數jj為20,a為0,b為0 int jj = 20; int a = 0; int b = 0; // 使用for迴圈,初始化值ii為0,當ii<jj時進入迴圈,步進表示式為ii+=2,jj自減 for (int ii = 0; ii < jj ; ii+=2,jj--) { // 迴圈內,使用if判斷ii被3整除,ii賦值為a,並輸出ii與"Hello" if (ii % 3 ==0 ){ a = ii; System.out.println(ii +" Hello"); }else { // 不被3整除,ii賦值為b,並輸出ii與"World" b = jj; System.out.println(ii + " World"); } } // 迴圈外,按照格式,列印a與b的乘積 System.out.println("a*b的值:" +a+"*"+b +"=" + a * b); } }
第六題:語法練習
-
語法點:字串,for,switch
-
按步驟編寫程式碼,效果如圖所示:
-
編寫步驟:
-
定義類 Test6
-
定義 main方法
-
定義字串遍歷 str,賦值為J
-
使用for迴圈,初始化變數i = 0,如果i<5進入迴圈,步進表示式i++
-
for迴圈內部,巢狀定義變數key ,賦值為i%3;
-
定義switch語句 ,表示式為key.
-
case 為0時,str拼接字元'a',i++後,break
-
case 為2時,str拼接字元'V'
-
迴圈結束後,輸出str
-
-
參考答案:
public class Test6 { public static void main(String[] args) { // 定義字串遍歷 str,賦值為J String str = "J"; // 使用for迴圈,初始化變數i = 0,如果i<5進入迴圈,步進表示式i++ for ( int i = 0 ; i < 5;i++) { // for迴圈內部,巢狀定義變數key ,賦值為i%3; int key = i % 3; // 定義switch語句 ,表示式為key. switch (key) { // case 為0時,str拼接字元'a',i++後,break case 0: str +='a'; i++; break; //case 為2時,str拼接字元'V' case 2: str +='V'; } } // 迴圈結束後,輸出str System.out.println(str); } }
第七題:語法練習
-
語法點:do-while,if
-
按步驟編寫程式碼,效果如圖所示:
-
編寫步驟
-
定義類 Test7
-
定義 main方法
-
定義boolean型別變數,bVar為false,bVar1為true
-
定義int型別變數,count 為 8
-
使用do ... while 格式,do程式碼塊中,輸出"Hello Java!"拼接count的字串
-
do程式碼塊中,使用if判斷,如果count大於等於7,則bVar1賦值為false,count自減,否則count+=3.
-
while中,當bVar與bVar1值相等並且count小於9的時候,進入迴圈
-
-
參考答案:
public class Test7 { public static void main(String[] args) { // 定義boolean型別變數,bVar為false,bVar1為true boolean bVar = false; boolean bVar1 = true; // 定義int型別變數,count 為 8 int count =8; // 使用do ... while 格式,do程式碼塊中,輸出"Hello Java!"拼接count的 do { // do程式碼塊中,使用if判斷,如果count大於等於7,則bVar1賦值為false,count自減,否則count+=3. System.out.println("Hello Java! " +count); if (count >= 7) { bVar1 = false; count--; }else { count += 3; } // while中,當bVar與bVar1值相等並且count小於9的時候,進入迴圈 } while (bVar == bVar1 && count < 9); } }