我正在做关于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(choice!=3)中,因此即使您以3的形式输入choice,那么包含else的程序也不会运行。所以只要重新组织括号,一切都会好起来的。
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 else 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
}
您的逻辑错误。您有一个外部if
语句,只有在用户没有输入三的情况下才会输入。因此,如果您这样做了,内部if
中的ore
将不会被执行,因此您的消息永远不会打印:
//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
}
}
如果,则需要移除外部,或者将
else
块移动到外部if
之后。
我对Java还是个新手,在理解OOP方面更是新手,所以请不要取笑我的不理解。 我试图设计一个程序,让用户输入华氏或摄氏度的温度,然后程序将确定另一个测量中的温度。 有没有人能给我一些建议,告诉我我的方向是否正确? 这是我到目前为止所做的,请记住,这是我对OOP的第一次尝试,所以它可能看起来一团糟。
我的目标是创建一个以摄氏度和华氏度表示温度的类“温度”。该类需要以下组成的四个构造函数。我需要帮忙的部分是两个访问器方法,因为我还不太熟悉它。我写了代码,但不确定它是否可行,我很感激一些洞察力 四个构造函数:1.一个用于度数2.一个用于刻度3.一个用于度数和刻度4.默认构造函数 两种访问器方法: 一个以摄氏度为单位返回温度 另一个返回华氏度 w/下面给出的公式C=5(F-32)/9 F=9*C/5
我正在做一个项目,需要我使用TinkerKit热敏电阻传感器来获得室温。检测后,Arduino BT板必须通过蓝牙将串行数据发送回Android手机。温度需要在Celcius的手机屏幕上显示。 我已经使串行通信链接工作。但热敏电阻的读数似乎很奇怪。它的读数是173/174/175,但我不确定它的读数是华氏度还是摄氏度(因为我找不到任何数据表和热敏电阻读数装置的详细信息)。 我必须包括任何带数值的温
我有以下代码: 这段代码的目的是将旧的丹麦等级转换成新的等级,但问题是当使用< code>convert13to7函数时,我没有得到任何输出。有人看到这里的问题了吗?
本文向大家介绍C#程序将摄氏温度转换为华氏温度,包括了C#程序将摄氏温度转换为华氏温度的使用技巧和注意事项,需要的朋友参考一下 首先,设置摄氏温度- 现在将其转换为华氏度: 您可以尝试运行以下代码将摄氏温度转换为华氏温度。 示例 输出结果
我在Java从华氏温度转换到摄氏温度时遇到了问题。我刚刚开始学习Java,现在还在阅读书籍和教程。 对于我的第一个程序,我正在尝试根据本教程创建一个基本的温度计算器。 我想扩展它的功能,也包括华氏温度到摄氏温度的转换,以及基本摄氏温度到华氏温度的转换。 因此,我使用给出的示例代码完成了摄氏温度到华氏温度的部分,现在,使用相同的代码,经过大量的试验和错误后稍微修改,我正在尝试处理另一半。我让它在某种