我想做的是编写一个程序,接受 1-100 之间的华氏度值并将其转换为摄氏度。如果该值不在之间,则代码应重新运行,而无需重新启动程序。我对 Java 很陌生,但这就是我的想法。
package forstaPakage;
import javax.swing.*;
public class FTillC {
public static void main(String[] args) {
int f = Integer.parseInt(JOptionPane.showInputDialog("hur många farenheit?"));
do{
if(f>0 && f<101){
int c = ((f-32)*5) / 9;
System.out.println(f + " farhenheit är lika med " + c + " celcius" );
break;
}
else{
f = Integer.parseInt(JOptionPane.showInputDialog("Ogiltligt värde, skriv in ett nytt"));
}
}while(f>101 || f<1);
}
}
这段代码几乎可以工作。如果“f”不在 1 和 100 之间,它会重新运行。如果我随后将 f 纠正为可接受的值,摄氏值会写出“C”“无穷大”次,则 while 循环由于某种原因不会中断。如果有人能解释我做错了什么,我将不胜感激。
最佳答案
我想你可能想要这个,当我运行你提供的代码并输入 114 后输入 14 时,程序退出而不显示转换。相反,您可以执行以下操作:
package forstaPakage;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
String str = "";
while(true) {
int f = Integer.parseInt(JOptionPane.showInputDialog( str + "\n" + "hur många farenheit?"));
if(f>0 && f<101){
int c = ((f-32)*5) / 9;
System.out.println(f + " farhenheit är lika med " + c + " celcius" );
break;
} else {
str = "Ogiltligt värde, skriv in ett nytt";
}
}
}
}
关于java - 将华氏度转换为摄氏度 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39660345/