Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将华氏温度转换为摄氏度(Java)_Java_Swing_While Loop_Do While - Fatal编程技术网

将华氏温度转换为摄氏度(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

我要做的是编写一个程序,它接受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);

}
}
包装用于包装;
导入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”就出现了一个新的对话框。如果你介意解释一下,我将非常感激。