gpt4 book ai didi

Java-温度转换循环问题

转载 作者:行者123 更新时间:2023-12-02 01:51:36 25 4
gpt4 key购买 nike

我正在做 Java 编程的小练习。

基本上,该应用程序允许用户输入华氏温度并显示等效摄氏温度,或输入摄氏温度并显示等效华氏温度。该应用程序包含一个摄氏温度方法,该方法返回相当于华氏温度的摄氏温度。该应用程序还包含一个华氏温度方法,该方法返回相当于摄氏温度的华氏温度。

这是我的完整代码:

import java.util.Scanner;

public class Temperature{

public static void main(String[] args) { // Main Method//

Scanner input = new Scanner(System.in);

//Declare variables
int choice; // the user's choice in the menu //
int temp;

do {

// print the menu

System.out.println("1.fahrenheit to Celsius");
System.out.println("2.Celsius to Fahrenheit");
System.out.println("3.Exit");
System.out.println("");
System.out.println("Choice:");

choice = input.nextInt();


if ( choice != 3 ) {

System.out.print( "Enter temperature: " ); // Display Enter Temperature
temp = input.nextInt(); // Read Temperature


if (choice == 1) {

System.out.println( temp + " Fahrenheit is " + toCelsius( temp ) + " Celsius ");
System.out.println("");
}

else if (choice == 2 ) {
System.out.println(temp + " Celsius is " + toFahrenheit( temp ) + " Fahrenheit ");
System.out.println("");

}

else {
System.out.println("Program terminated "); // Display "Program terminated" if user entered 3
}

} //end if loop

} // end do loop
while (choice !=3);

} // end main method



// return Celsius equivalent of Fahrenheit temperature
public static int toCelsius(int fahrenheit) {
int celsius;
celsius = (int) (5.0/9.0 * (fahrenheit - 32));
return celsius;
} // end method celsius


// return Fahrenheit equivalent of Celsius temperature
public static int toFahrenheit(int celsius) {
int fahrenheit;
fahrenheit = (int) (9.0/5.0 * celsius + 32);
return fahrenheit;
} // end method fahrenheit



}

好消息是包含方法的代码正在运行。用户可以输入选项 1 或 2,然后输入温度数字并以摄氏度或华氏度显示。但如果用户输入选项3,程序将显示“程序终止”。对我来说,当我输入选项 3 时,程序停止工作(未显示“程序终止”)。我认为“循环”部分或“IF”部分有问题。

谁能帮我解决这个问题吗?

最佳答案

你的逻辑是错误的。您有一个外部 if 语句,仅当用户输入三个时才输入该语句。因此,如果您这样做,内部 if 中的 else 将不会被执行,因此您的消息将永远不会打印:

//If you do enter three, it will skip over all of this:
if ( choice != 3 ) {

System.out.print( "Enter temperature: " ); // Display Enter Temperature
temp = input.nextInt(); // Read Temperature


if (choice == 1) {

System.out.println( temp + " Fahrenheit is " + toCelsius( temp ) + " Celsius ");
System.out.println("");
}

else if (choice == 2 ) {
System.out.println(temp + " Celsius is " + toFahrenheit( temp ) + " Fahrenheit ");
System.out.println("");

}
else {
System.out.println("Program terminated "); // Display "Program terminated" if user entered 3
}

}

您需要删除外部 if,或者将 else block 移至外部 if 后面。

关于Java-温度转换循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52911098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com