我的代码应该继续要求用户键入一个字符串(用户键入一个整数)并将其转换为整数,直到用户输入-1
然后生成程序{{ 1}},但我对如何做到感到困惑?
break
我的问题在于import java.util.Scanner;
public class StringConverter {
public static void main(String[] args) {
boolean flagBoolean = true;
while (flagBoolean) {
Scanner keyBoard = new Scanner(System.in);
System.out.println("Your number:");
String input = keyBoard.next();
if (input == -1) {
break;
}
int result = 0;
for (int i = 0; i < input.length(); i++) {
result = result * 10 + input.charAt(i) - '0';
}
System.out.println("Converted to:" + result);
}
}
}
,因为if (input == -1)
是input
,这会阻止它进行编译。
答案 0 :(得分:3)
只需将其与字符串文字"-1"
进行比较即可。请注意String
是对象,因此应使用equals
方法进行比较:
String input = keyBoard.next();
if (input.equals("-1")) {
break;
}
答案 1 :(得分:2)
如果您使用keyboard.nextInt()
,该方法将返回integer
。 next()
方法返回一个字符串。
注意:如果使用nextInt()
,如果输入的内容不是整数,程序将抛出异常。您可以使用TRY CATCH
来处理这种可能性。
另外,当你说程序需要打破时,我认为你的意思是你需要它结束。将break;
放在if语句中不是这样做的方法。尝试将(input != -1)
条件放入while而不是标记中。这样,只有在用户输入-1
时,您的程序才会退出。只需删除if语句。
我希望这会有所帮助。
答案 2 :(得分:2)
使用equals(Object anObject)比较您传递的字符串:
String input = keyBoard.next();
if ("-1".equals(input )) {
break;
}
答案 3 :(得分:1)
我想你的问题。
input == -1 --> No
input.equals("-1") --> Yes