第四章 循环结构 练习

1.循环输入某同学S1结业考试的5门课成绩,并计算平均分

 //for循环
public static void main(String[] args) { double sum=0;
      Scanner scanner = new Scanner(System.in);
      System.out.print("请输入学生姓名:");
      String name = scanner.next();
      for (int i = 1;i < 6;i++){
          System.out.print("请输入5门功课中的第"+i+"门课的成绩:");
          double score = scanner.nextDouble();
          sum = score + sum;
      }
      double avg = sum/5;
      System.out.println(name+"的平均分是:"+avg);
}

2.输出如图所示加法表

 //加法
    public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个值:");
        int num = scanner.nextInt();
        System.out.println("输出加法表:");
        int i,j;
        for ( i = 0,j = num;i <= num;i++,j--){
            System.out.println(i + "+" +j + "=" +(i+j));
        }
    }

3. 使用while、do-while以及for循环三种编程方式实现:计算100以内(包括100)的偶数之和

//偶数和
public static void main(String[] args) {
       int sum = 0;
        int i = 0;
        //for循环
        for (i = 0;i <= 100;i++){
            if (i%2 == 0){
                sum = i+sum;
            }
        }
        System.out.println("100以内偶数和为:"+sum);


//while循环
       while (i<101){
            i++;
            if (i%2 == 0){
                sum = i+sum;
            }
       }
        System.out.println("100以内偶数和为:"+sum);


//do-while循环
        do{
            i++;
            if (i%2 == 0) {
                sum = i + sum;
            }
        }while (i < 101);
        System.out.println("100以内偶数和为:"+sum);
}

4.(使用while循环)随机生成一个1-100之间的数字num,循环让用户输入猜这
个数,
如果用户输入的数字大于num提示输入的数字比较大,
如果用户输入的数字小于num提示输入的数字比较小,
直到用户输入的数字和num相等为止,然后输出用户猜数的总次数

public static void main(String[] args) {
        Random ran = new Random();
        int num = ran.nextInt(100)+1;
        System.out.print("请输入一个数:");
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();
        int i = 0;
        while (number != num){
            if (number > num){
                System.out.println("输入的数字比较大!");
                System.out.print("请继续输入一个数:");
                 number = scanner.nextInt();
            }else if (number < num){
                System.out.println("输入的数字比较小!");
                System.out.print("请继续输入一个数:");
                 number = scanner.nextInt();
            }
            i++;
        }
        System.out.println("随机数为:"+num+"猜对了!共猜测的次数:"+i);
}

 5.(使用for循环)打印出1-100之间所有不是7的倍数和不包含7的数字,并求和

public static void main(String[] args) {
        int sum = 0;
        for (int i = 1;i < 101;i++){
            if (i%7 != 0 && i/10%10 != 7 && i%10 != 7){
                System.out.println(i);
                sum = i+sum;
            }
        }
        System.out.println("和为:"+sum);
    }

6.(使用while循环)循环输入5个数,输完后显示这些数中有没有负数

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = 1;
        int number,a = 0;
        while (i <= 5){
            System.out.print("请输入一个数:");
             number = scanner.nextInt();
            if (number < 0){
                a = number;
            }
            i++;
        }
        if (a < 0){
            System.out.println("有负数");
        }
    }

 7.(使用while循环)有一个有钱的神经病,他往银行里存钱,第一天存1元,以后每天比前一天多存50%,完成下列计算任务:他存到第几天,当天存的钱会超过10元

 public static void main(String[] args) {
        double money = 1;
        int i = 1;
        while (money < 10){
            money = money*(1+0.5);
            i++;
            System.out.println("存"+money);
        }
        System.out.println("第"+i+"天,当天存的钱超过10元");
    }

8. (使用for循环)一个月(30天)后,他总共存了多少钱

 public static void main(String[] args) {
        double money = 1,sum = 0;
        int i = 1;
        while (i < 30){
            money = money*(1+0.5);
            i++;
            System.out.println("存"+money);
            sum = money+sum;
        }
        System.out.println("第"+i+"天,存的钱共有:"+sum);
    }

9.(使用do-while循环)里有一只蜗牛,他白天往上爬5米,晚上掉3.5米,井深56.7米计算蜗牛需要多少天才能从井底到爬出来

public static void main(String[] args) {
        double height = 0;
        int i = 0;
        do {
            height += 5;
            if (height < 56.7) {
                height -= 3.5;
            }
            i++;
        } while (height < 56.7);
        System.out.println("需要" + i + "天才能爬出井底");
    }

 10.(使用for循环)计算2000年1月1日到2008年1月1日相距多少天。(注意闰年366,平年365)

 public static void main(String[] args) {
        int day,sum = 0;
        for (int i = 2000;i <= 2008;i++){
            if (i%4 == 0 && i%100 != 0 || i%400 == 0){
                day = 366;
            }else {
                day = 365;
            }
            sum = day + sum;
        }
        System.out.println("2000年1月1日到2008年1月1日相距"+sum+"天");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值