黑马程序员技术交流社区

标题: Java 循环语句练习题 [打印本页]

作者: dym19930808    时间: 2018-7-19 23:53
标题: Java 循环语句练习题
1、for循环输出1 到100



public class Practice01 {

   public static void main(String[] args) {

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

        System.out.println(i);

    }
}
}

2、while循环输出1-100



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=?


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”就重复以上过程,
否则结束程序。


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就输出“生成了一只红猪,有下酒菜了”。

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日相距多少天。(注意闰年)


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,就结束循环,并最后输出累加的结果。



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就重复以上步骤,否则退出程序*/

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日相距多少天。(注意闰年,每个月份天数不一样)

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+"天");
    }
}



作者: 小浙姐姐    时间: 2018-7-23 17:58





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2