将华氏温度转换为摄氏度(Java)
我要做的是编写一个程序,它接受1-100之间的华氏值,并将其转换为摄氏度。如果值不在两者之间,则代码应重新运行,而无需重新启动程序。我对Java很陌生,但这就是我的想法将华氏温度转换为摄氏度(Java),java,swing,while-loop,do-while,Java,Swing,While Loop,Do While,我要做的是编写一个程序,它接受1-100之间的华氏值,并将其转换为摄氏度。如果值不在两者之间,则代码应重新运行,而无需重新启动程序。我对Java很陌生,但这就是我的想法 package forstaPakage; import javax.swing.*; public class FTillC { public static void main(String[] args) { int f = Integer.parseInt(JOptionPane.showInputDialo
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);
}
}
包装用于包装;
导入javax.swing.*;
公共类有限责任公司{
公共静态void main(字符串[]args){
intf=Integer.parseInt(JOptionPane.showInputDialog(“hurmånga farenheit?”);
做{
如果(f>0&&f101 | | f我想您可能需要这样做,当我运行您提供的代码并输入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";
}
}
}
}
包装用于包装;
导入javax.swing.*;
公共班机{
公共静态void main(字符串[]args){
字符串str=“”;
while(true){
intf=Integer.parseInt(JOptionPane.showInputDialog(str+“\n”+“hurmånga farenheit?”);
如果(f>0&&f)看不出有什么问题。但您能否澄清“如果我随后纠正了可接受的值,摄氏度”在这里可以正常工作(在此之后添加一个System.out并显示一些消息,在输入合法值后将打印消息。)因此,您发布的测试代码与实际问题之间一定存在差异。如果我首先运行代码并输入一个不在跨度1-100之间的值,则代码将重新运行,并弹出消息“无效值,请编写一个新值”。如果我随后写入一个介于1-100之间的值,则该值将被“无限次”写入虽然我不太明白“String str=”“;”的作用以及它在else语句中的工作原理,但我能理解为什么这更简单,为什么仅仅因为你写了“str”就出现了一个新的对话框。如果你介意解释一下,我将非常感激。