【问题标题】:4.23 Lab countdown until matching digits in Java4.23 实验室倒计时,直到在 Java 中匹配数字
【发布时间】:2020-05-23 21:27:02
【问题描述】:

所以我有这个实验室,而且我一直保持十分之九的正确率。我最终将我的原始代码更改为这个非常古怪的版本以容纳额外的点。问题是:

编写一个程序,将 20-98 范围内的整数作为输入。输出是从整数开始倒计时,当两个输出数字相同时停止。

我的代码:

import java.util.Scanner;
public class LabProgram {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      int userDigit;
      int newDigit;

      userDigit = scnr.nextInt();

      newDigit = userDigit - 1;

      if ((userDigit > 19) && (userDigit < 99)) {
         System.out.print(userDigit + " ");

      }
      else {
         System.out.println("Input must be 20-98");
      }


      while ((userDigit > 19) && (userDigit < 99) && (newDigit % 11 != 0)) {
         if (userDigit % 11 == 0) {
            System.out.println();
            break;
         }
         System.out.print(newDigit + " ");
         --newDigit;

         if (newDigit % 11 == 0) {
            System.out.println(newDigit + " ");
            break;
         }
      }


   }
}

有人可以告诉我我是否考虑过这一点,以及是否有更简单的方法来格式化 for 循环而无需所有“ifs”。我是这方面的新手,现在已经上课 4 周了。任何建议将不胜感激。我知道可能有某种方法可以使用另一种方法,但说明说明使用“while”循环。

【问题讨论】:

    标签: java loops while-loop


    【解决方案1】:

    希望这会有所帮助:

    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        int userDigit = scnr.nextInt();
        scnr.close();
    
        if ((userDigit <= 19) || (userDigit >= 99))
            System.out.println("Input must be 20-98");
    
        do {
            System.out.println(userDigit + " ");
            if (userDigit % 11 == 0)
                break;
    
            --userDigit;
    
        } while ((userDigit > 19));
    }
    

    由于userDigit 的原始值不需要再次使用,因此可以跳过额外的变量newDigit

    此外,如果需要 while 循环,那么考虑 do-while 可以帮助首先打印初始输入,这可以帮助跳过后续的冗余检查。

    之后,你可以简单地对原来的userDigit进行操作(检查当前值是否可以除以11;'yes':跳出while循环,'no' :递减,并不断重复这些步骤)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      相关资源
      最近更新 更多