1. 程式人生 > >Java 迴圈語句練習題(1)

Java 迴圈語句練習題(1)

1、for迴圈輸出1 到100

package com.hz.loop;

/**
 * 1、for迴圈輸出1 到100
 * @author ztw
 *
 */
public class Practice01 {

public static void main(String[] args) {

    for(int i=1;i<=100;i++){

        System.out.println(i);

    }
}
}

2、while迴圈輸出1-100

package com.hz.loop;

/**
 * 2、while迴圈輸出1-100
 * @author ztw
 *
 */
public class Practice02 {

public static void main(String[] args) {
    int i=1;
    while(i<=100){
        System.out.println(i);
        i++;
    }
}
}

3、迴圈輸出以下結果:
2*5=10
4*10=40
6*15=90
……
?*100=?

package com.hz.loop;

/**
 * 3、迴圈輸出以下結果:
 *  2*5=10
 *  4*10=40
 *  6*15=90
 *  ……
 *  ?*100=?
 * @author ztw
 *
 */
public class Practice03 {

public static void main(String[] args) {
    /*
     * 可以看做是乘數和被乘數以每次遞增2和5的一種規則變化
     */
    int a=2;
    int b=5;
    do{
    System.out.println(a+" * "+b+" = "+(a*b));
    a=a+2;
    b=b+5;
    }
    while(b<=100);

}
}

4、要求使用者輸入一個0到2之間的整數,
如果使用者輸入0輸出“你出的是石頭”,
如果使用者輸入1就輸出“你出的是剪刀”,
如果使用者輸入的是2就輸出“你出的是布”,
然後再問是否要繼續出拳,
如果回答“y”就重複以上過程,
否則結束程式。

package com.hz.loop;

import java.util.Scanner;

/**
 * 4、要求使用者輸入一個0到2之間的整數,
 * 如果使用者輸入0輸出“你出的是石頭”,
 * 如果使用者輸入1就輸出“你出的是剪刀”,
 * 如果使用者輸入的是2就輸出“你出的是布”,
 * 然後再問是否要繼續出拳,
 * 如果回答“y”就重複以上過程,否則結束程式。
 * @author ztw
 *
 */
public class Practice04 {


public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    System.out.println("輸入一個0到2之間的整數:");
    int number = sc.nextInt();

    for(;;){
    if(number>=0&&number<=2){
        //定義一個switch語句判斷輸出對應的值
        switch(number){
        case 0:
            System.out.println("你出的是石頭");
            break;
        case 1:
            System.out.println("你出的是剪刀");
            break;
        case 2:
            System.out.println("你出的是布");
            break;
        default:

            break;
        }
        System.out.println("然後再問是否要繼續出拳?(y/?)");
        String choice = sc.next();
        if(choice.equals("y")||choice.equals("Y")){

        }else{
            break;
        }

    }else{
        System.out.println("請輸入一個0到2之間的整數!");
    }

    }


}
}

5、讓計算機隨機產生10個0到2之間的數,
如果產生的是0就輸出“生成了一隻白豬,我好怕怕”,
如果產生的是1就輸出“生成了一隻黑豬,我喜歡”
如果產生的是2就輸出“生成了一隻紅豬,有下酒菜了”。

package com.hz.loop;

import java.util.Random;

/**
 * 5、讓計算機隨機產生10個0到2之間的數,
 * 如果產生的是0就輸出“生成了一隻白豬,我好怕怕”,
 * 如果產生的是1就輸出“生成了一隻黑豬,我喜歡”
 * 如果產生的是2就輸出“生成了一隻紅豬,有下酒菜了”。
 * @author ztw
 *
 */
public class Practice05 {

public static void main(String[] args) {
    Random rd = new Random();
    //讓計算機隨機產生10個0到2之間的數
    for(int i=0;i<10;i++){
         int number = rd.nextInt(2);
         switch(number){
         case 0:
             System.out.println("生成了一隻白豬,我好怕怕");
             break;
         case 1:
             System.out.println("生成了一隻黑豬,我喜歡");
             break;
         case 2:
             System.out.println("生成了一隻紅豬,有下酒菜了");
             break;
             default:
                 break;
         }
    }
}
}

6、計算2000年1月1日到2008年1月1日相距多少天。(注意閏年)

package com.hz.loop;

/**
 * 
 * 6、計算2000年1月1日到2008年1月1日相距多少天。(注意閏年)
 * 
 * @author ztw
 *
 */
public class Practice06 {

public static void main(String[] args) {
    int sum = 0;
    int day;
    for(int i=2000;i<2008;i++){
        //判斷該年份是否是閏年
        if((i%4==0&&i%100!=0)||(i%400==0)){
            day=366;
        }else{
            day=365;
        }
        sum = sum+day;
    }
    System.out.println(sum);

}
}

7、迴圈輸入大於0的數字進行累加,直到輸入的數字為0,就結束迴圈,並最後輸出累加的結果。

package com.hz.loop;

import java.util.Scanner;

/**
 * 7、迴圈輸入大於0的數字進行累加,直到輸入的數字為0,就結束迴圈,並最後輸出累加的結果。
 * @author ztw
 *
 */
public class Practice07 {

public static void main(String[] args) {
    int sum = 0;
    Scanner sc = new Scanner(System.in);
    //迴圈輸出
    while(true){
        System.out.println("請輸入一個數:");
        int number = sc.nextInt();
        if(number==0){
            break;
        }else{
            sum = sum+number;
        }
    }
    System.out.println("累加的結果:"+sum);
}
}

8、我行我素購物管理系統>生日問候
請輸入今天的日期(月/日<用兩位數表示:): 05/29
請輸入客戶生日:08/09
然後判斷是否今天生日
是否繼續(y/n)
如果是y就重複以上步驟,否則退出程式*/

package com.hz.loop;

import java.util.Scanner;

/**
 * 8、我行我素購物管理系統>生日問候 
 * 請輸入今天的日期(月/日<用兩位數表示:): 05/29
 * 請輸入客戶生日:08/09 
 * 然後判斷是否今天生日是否繼續(y/n)
 * 如果是y就重複以上步驟,否則退出程式
 * @author ztw
 *
 */
public class Practice08 {

public static void main(String args[]){ 
    Scanner sc = new Scanner(System.in);

    for(;;){
    System.out.println("請輸入今天的日期(月/日<用兩位數表示:):");
    String toDay = sc.next();
    System.out.println("請輸入客戶生日:");
    String brithday = sc.next();
    if(toDay.equals(brithday)){
        System.out.println("生日快樂,送你一個華為手機!");
        break;
    }
    System.out.println("然後判斷是否今天生日是否繼續(y/n):");
    String choice = sc.next();
    if(choice.equals("y")||choice.equals("Y")){

    }else{
        break;
    }

    }
}
}

9、計算使用者輸入的日期離1900年1月1日相距多少天。(注意閏年,每個月份天數不一樣)

package com.hz.loop;

import java.util.Scanner;

/**
 * 9、計算使用者輸入的日期離1900年1月1日相距多少天。(注意閏年,每個月份天數不一樣)
 * @author ztw
 *
 */
public class Practice09 {

public static void main(String[] args)  { 

    Scanner sc = new Scanner(System.in);
    System.out.println("請輸入年份:");
    //定義使用者輸入年份的變數year
    int year = sc.nextInt();
    System.out.println("請輸入月份:");
    //定義使用者輸入月份的變數month
    int month = sc.nextInt();
    //定義一個初始化變數sum表示相距0天
    int sum = 0;
    for(int i=1900;i<year;i++){
        //判斷輸入的年份是否為閏年
        if((i%4==0&&i%100!=0)||(i%400==0)){
            sum+=366;
        }else{
            sum+=365;
        }
    }
    for(int i=1;i<month;i++){
        //判斷輸入的月份是否為大月
        if(i==1||i==3||i==5||i==7||i==8){
            sum+=31;
        }else if(i==2){
            //判斷輸入的年份是否為閏年
            if((year%4==0&&year%100!=0)||year%400==0){
                sum+=29;
            }else{
                sum+=28;
            }
        //不是大月
        }else{
            sum+=30;
        }
    }
    //輸出計算結果
    System.out.println("使用者輸入的日期離1900年1月1日相距"+sum+"天");
    }
}