【问题标题】:Java user input has to be in range / Produce integers by 10 for 20 linesJava 用户输入必须在范围内/以 10 为单位生成 20 行的整数
【发布时间】:2017-01-26 20:37:28
【问题描述】:

在我的代码中需要一些东西。我已经连续看了 8 个小时,无法弄清楚。我需要用户输入介于 -459 和 212 之间。如果它是超出范围的整数,它将打印 line 以重新输入,然后继续进行转换。现在它没有做任何一个,只是通过代码。我应该使用布尔值还是 if when?不知道。

第二个问题是当华氏温度和摄氏温度在转换后打印出来时,我需要它们再列出 20 行,每个温度加 10。这是算数吗?请需要主要帮助!

到目前为止我所拥有的:

import java.text.DecimalFormat;
import java.util.Scanner;

public class Temperatures {

public static void main(String[] args) {

    double Fahrenheit;
    double Celsius;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter temperature in Fahrenheit: ");
        Fahrenheit = scan.nextInt();

        if(Fahrenheit >= -459 && Fahrenheit <= 212)


            System.out.println("Please enter a number between -459 and 212 degrees:");
            Fahrenheit = scan.nextInt(); 

    Celsius = ((Fahrenheit -32)*5)/9;

    DecimalFormat fmt = new DecimalFormat("#.##");

    System.out.print("Fahrenheit:  " + Fahrenheit + "     Celsius:  " + fmt.format(Celsius));


}
}

【问题讨论】:

  • 现在我的华氏温度和摄氏温度变量还没有初始化。

标签: java loops boolean conditional


【解决方案1】:

您的if 条件颠倒了。而下一个nextInt() 不在if 块中。如果你想让它重复直到你得到一个有效的输入,你需要把它变成一个while循环:

while(Fahrenheit < -459 || Fahrenheit > 212) {
    System.out.println("Please enter a number between -459 and 212 degrees:");
    Fahrenheit = scan.nextInt();
}

第二个问题我没看懂。

【讨论】:

  • 第二部分是将华氏温度的用户输入转换为摄氏温度,两个温度都打印在同一行,我得到了。然后作业要求开始以 10 度为增量列出温度。然后停在 20 行。
猜你喜欢
  • 1970-01-01
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 2020-06-24
  • 1970-01-01
  • 2015-02-05
相关资源
最近更新 更多