java - 如果用户输入了字符/字符串而不是数字,如何询问用户是否要重新启动程序?

标签 java string netbeans double

我是新来的,也是 Java 新手,大约 1-2 周前开始,我想制作一个应用毕达哥拉理论的应用程序。一切都完成了,但现在我陷入了一个困境,我希望用户在输入字符或字符串而不是数字时被询问是否要重试、重新开始。

我做错了什么?这是我的代码,我也添加了注释,这样万一您不明白我想要实现的目标,它会更容易。

提前致谢!

package pitagoracalculator;
import java.util.Scanner;

public class PitagoraCalculator {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
            double nr1;
            double nr2;
            double ipot;
            boolean raspuns;
            String raspuns1;

            do{
                try{
                    //user is asked for first number
                    System.out.print("Introduceti primul numar: ");
                    nr1 = input.nextDouble();

                    //user is asked for second number
                    System.out.print("Introduceti al 2-lea numar: ");
                    nr2 = input.nextDouble();

                    //result of calculation
                    ipot = (nr1*nr1)+(nr2*nr2);
                    System.out.println("Rezultatul este: "+ipot+"^2");

                //in case user inserts a string/char instead of a double => error
                } catch (Exception e){
                    System.err.println("Nu ati introdus un numar.");
                    break;
                }

                //user is asked if he wants to do another calculation
                System.out.println("Doriti sa faceti un alt calcul? (da/nu)");
                raspuns1 = input.next();

                //if his answer is yes, raspuns = true, else raspuns = false
                if(raspuns1.equalsIgnoreCase("da"))
                    raspuns = true;
                else{
                    System.out.println("La revedere!");
                    raspuns = false;
                }

            //checks if the answer was true or false
            }while(raspuns == true);
    }
}

最佳答案

替换

//in case user inserts a string/char instead of a double => error
} catch (Exception e){
   System.err.println("Nu ati introdus un numar.");
   break;
}

//in case user inserts a string/char instead of a double => error
} catch (Exception e){
   System.err.println("Nu ati introdus un numar.");
   //clear pending input.
   if (input.hasNext()) {
        input.next();
   }
   continue;
}

“break”退出循环,“Continue”将继续下一个循环。

您还必须使用 true 初始化 raspuns 变量

boolean raspuns = true;

关于java - 如果用户输入了字符/字符串而不是数字,如何询问用户是否要重新启动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29373393/

相关文章:

css - 如何在 Netbeans 中手动触发 LESS/SASS 编译器

java - 当我在 Spring Boot 的 POST API 中使用对象列表时出现 ClassCastException

ruby-on-rails - Ruby:卡住数组中的字符串是否也应该单独卡住?

java - 从 Try-Catch 中获取字符串

C++,STL。将带有 rgb 颜色的字符串转换为 3 个 int 值?

Java:使用一组 Enum 值作为 SpinnerListModel

java - 尽管输入正确,但输入不正确

java - 谷歌地图可以用于非 GPS 相关功能,例如提供游戏 map 吗?

java - 引用外部 Java 和 Android 库

java - 如何使用命令提示符动态地将 Cucumber 功能文件传递到 Maven 项目?