所以我只是在学习java,而且我正在编写一个简单的程序,但是我发现用户可以输入一些不是int的东西,所以我在网上查找了认为解决这个问题的最佳方法是使用try和catch块。但是,在我这样做之后,程序的其余部分给了我一个错误,因为我在块中声明了一个变量。那么如何在块内声明这个变量呢?
try{
int guessN = guess.nextInt();
}
catch(InputMismatchException err){
System.out.println(err);
}
finally {
int guessN = guess.nextInt();
}
//Location of error
if(guessN < newN){
log("Wrong! The number is more than your guess");
}
没关系,我只是将代码放在try块中,它就起作用了XD抱歉!
答案 0 :(得分:3)
将声明移到外面并在块内进行分配:
int guessN = 0;
try{
guessN = guess.nextInt(); }
catch(InputMismatchException err){
System.out.println(err);
}
finally {
guessN = guess.nextInt();
}
答案 1 :(得分:1)
这样做
int guessN=0;
try{
guessN = guess.nextInt();
}
catch(InputMismatchException err){
System.out.println(err);
}
finally {
guessN = guess.nextInt();
}
//Location of error
if(guessN < newN){
log("Wrong! The number is more than your guess");
}
答案 2 :(得分:0)
每次你打开花括号时,你都要创建一个范围。如果您希望在该范围之外识别变量,则应在那里(外部)声明它。
答案 3 :(得分:0)
你应该在街区外宣布:
int guessN = 0;
try{
guessN = guess.nextInt();
}
catch(InputMismatchException err){
System.out.println(err);
}
finally {
guessN = guess.nextInt();
}
//Location of error
if(guessN < newN){
log("Wrong! The number is more than your guess");
}