1. 程式人生 > 實用技巧 >迴圈結構-for-while-do..while

迴圈結構-for-while-do..while

基礎題目

第一題:語法練習

  • 語法點:運算子,while,if

  • 按步驟編寫程式碼,效果如圖所示:

  • 編寫步驟:

    1. 定義類 Test1

    2. 定義 main方法

    3. 定義變數i為0,i2為10

    4. 使用第一個while迴圈,當條件為i小於5 時,則進入迴圈

    5. 迴圈內,i自增,i2自增

    6. 迴圈內,使用if判斷,當i大於等於 2 並且i2小於15 時,同時輸出i和i2的值

    7. 使用第二個while迴圈,當條件為i2小於20 時,則進入迴圈

    8. 迴圈內,i自增,i2自增

    9. 迴圈內,使用if判斷,當i大於8 或者i2小於等於18 時,同時輸出i和i2的值

  • 參考答案:

    public class Test1 {
    public static void main(String[] args) {
    // 定義變數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

  • 按步驟編寫程式碼,效果如圖所示:

  • 編寫步驟:

    1. 定義類 Test2

    2. 定義 main方法

    3. 定義變數 discount為1, totalPrice為550

    4. 判斷當totalPrice >=500 ,discount賦值為0.5

    5. 判斷當totalPrice >=400<500時,discount賦值為0.6

    6. 判斷當totalPrice >=300<400時,discount賦值為0.7

    7. 判斷當totalPrice >=200<300時,discount賦值為0.8

    8. 輸出totalPrice.

    9. 輸出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

  • 按步驟編寫程式碼,效果如圖所示:

  • 編寫步驟

    1. 定義類 Test3

    2. 定義 main方法

    3. 使用for迴圈,初始化變數r為10,當r>0時,進入迴圈

    4. for迴圈內,定義變數c,賦值為r

    5. for迴圈內,使用while迴圈,當c>=0時,輸出c,再將c減2賦值給c

    6. 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

  • 按步驟編寫程式碼,效果如圖所示:

  • 編寫步驟

  1. 定義類 Test4,定義 main方法

  2. main方法中,定義int型別變數 a為10,b為20,c為30

  3. 定義 method1方法, 定義變數a為-5,變數b為--a,判斷a為偶數,則a賦值為++b,否則b賦值為--a.列印a,b

  4. 定義 method2方法, 定義變數a為0,使用while迴圈,判斷a<=5,進入迴圈.

  5. while迴圈內部,使用for迴圈,初始化int型別變數b為1,當b<=5時進入迴圈, 步進表示式b++

  6. for迴圈內,不換行輸出i並拼接" "

  7. for迴圈外,輸出換行.

  8. j自增.

  9. main方法呼叫method1方法,method2方法

  10. 輸出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

  • 按步驟編寫程式碼,效果如圖所示:

  • 編寫步驟

    1. 定義類 Test5

    2. 定義 main方法

    3. 定義變數jj為20,a為0,b為0

    4. 使用for迴圈,初始化值ii為0,當ii<jj 時進入迴圈,步進表示式為ii+=2,jj自減

    5. 迴圈內,使用if判斷ii被3整除,ii賦值給a,並輸出ii拼接"Hello"

    6. 不被3整除,ii賦值給b,並輸出ii拼接"World"

    7. 迴圈外,按照格式,列印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

  • 按步驟編寫程式碼,效果如圖所示:

  • 編寫步驟:

    1. 定義類 Test6

    2. 定義 main方法

    3. 定義字串遍歷 str,賦值為J

    4. 使用for迴圈,初始化變數i = 0,如果i<5進入迴圈,步進表示式i++

    5. for迴圈內部,巢狀定義變數key ,賦值為i%3;

    6. 定義switch語句 ,表示式為key.

    7. case 為0時,str拼接字元'a',i++後,break

    8. case 為2時,str拼接字元'V'

    9. 迴圈結束後,輸出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

  • 按步驟編寫程式碼,效果如圖所示:

  • 編寫步驟

    1. 定義類 Test7

    2. 定義 main方法

    3. 定義boolean型別變數,bVar為false,bVar1為true

    4. 定義int型別變數,count 為 8

    5. 使用do ... while 格式,do程式碼塊中,輸出"Hello Java!"拼接count的字串

    6. do程式碼塊中,使用if判斷,如果count大於等於7,則bVar1賦值為false,count自減,否則count+=3.

    7. 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);
    ​
            }
      }