gpt4 book ai didi

java - Java 小程序 try/catch 语句发生奇怪的事情

转载 作者:行者123 更新时间:2023-12-01 17:30:15 26 4
gpt4 key购买 nike

我的小程序发生了一些奇怪而神秘的事情!它涉及一个人猜测一个数字,然后将其与随机数进行比较。你不断猜测,直到你猜对为止。如果您输入类似

ewjkgmvf

您将在输入字段中收到 NumberFormatException。为了解决这个问题,我用 try...catch 包围了将 String 转为 int 的过程。如果捕获到异常,标签应该显示“那不是数字!”。相反,它只是说“太低。再试一次”,只有当您猜测的数字太低时才会发生这种情况。我究竟做错了什么?

我将发布整个程序,因为它只是一个简短的程序。

这是我的代码:

import java.awt.*;
import java.applet.*;
import java.util.Random;
public class Number_guess_applet extends Applet{
private static final long serialVersionUID = 1L;
Button btnClick;
TextField entry;
Label prompt;
String temp;
Random r = new Random();
int x = r.nextInt(100);
int number;
int keepGoing = 1;

public void init(){
prompt = new Label("Guess the number");
add(prompt);
entry = new TextField(10);
add(entry);
btnClick = new Button("Check your guess");
add(btnClick);
}
public boolean action(Event evt, Object arg){


temp = entry.getText();
try
{
number = Integer.parseInt(temp);
}
catch(java.lang.NumberFormatException e)
{
prompt.setText("That is not a number!");
}
if (x < number)
prompt.setText("Too high. Try again.");
else if (x > number)
prompt.setText("Too low. Try again.");
else if (x == number)
prompt.setText("Found it!");
else
prompt.setText("Invalid or not a number. Choose a number between 1 and 100");
return(true);


}
}

最佳答案

将逻辑移至 try/catch - 之后执行它,因此它会覆盖提示文本:

 try {
number = Integer.parseInt(temp);
if (x < number)
prompt.setText("Too high. Try again.");
else if (x > number)
prompt.setText("Too low. Try again.");
else if (x == number)
prompt.setText("Found it!");
else
prompt.setText("Invalid or not a number. Choose a number between 1 and 100");
} catch(java.lang.NumberFormatException e) {
prompt.setText("That is not a number!");
}
return(true);

关于java - Java 小程序 try/catch 语句发生奇怪的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11781336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com