我正在尝试为一项任务调试一部分代码(我还是Java的新手)并且已经通过很多资源来解决这个冲突,但仍然无法完成它。
public static void main(String [] args){
Scanner keyboard = new Scanner(System.in);
String input = null;
do
{
System.out.println("Enter 'A' for option A or 'B' for option B.");
String input = keyboard.next();
input.toLowerCase();
input.charAt(0);
}
while ((input != "a") || (input != "b"));
}
我总是在输入字符串中出现重复的局部变量错误。
非常感谢任何帮助!
答案 0 :(得分:12)
替换
String input = keyboard.next();
与
input = keyboard.next();
如果在变量名之前加上String
,则它是一个声明。并且您可以在范围中仅声明变量名称一次。
答案 1 :(得分:4)
您已将input
变量声明两次。您需要更改此行:
String input = keyboard.next();
到此:
input = keyboard.next();
此外,此代码很可能无效:
((input != "a") || (input != "b"))
在Java中,使用.equals()
方法比较字符串,所以这一行:
((input != "a") || (input != "b"))
需要更改为:
((!input.equals("a")) || (!input.equals("b")))
答案 2 :(得分:1)
您已复制String input
声明。一次就够了。
答案 3 :(得分:0)
public static void main(String [] args){
Scanner keyboard = new Scanner(System.in);
String input = null;
do
{
System.out.println("Enter 'A' for option A or 'B' for option B.");
input = keyboard.next();
input.toLowerCase();
input.charAt(0);
}
while ((input != "a") || (input != "b"));
}
问题是您是否再次在do{}
内声明输入。
所以它应该只是
input=keyboard.next();
答案 4 :(得分:0)
您已将input
变量声明两次。 main
方法内部仅声明input
一次。在do {}
:
input = keyboard.next(); instead of String input = keyboard.next();
答案 5 :(得分:0)
据我所知,这不是隐藏变量的方式。
这就是我的意思
private static String input = null;
public static void main(String [] args){
Scanner keyboard = new Scanner(System.in);
do
{
System.out.println("Enter 'A' for option A or 'B' for option B.");
String input = keyboard.next();
input.toLowerCase();
input.charAt(0);
}
while ((input != "a") || (input != "b"));
}