java while(scan.nextLine()!=“$”)

时间:2012-02-20 22:33:44

标签: java loops while-loop

基本上,我正在尝试进行while循环,并继续阅读,直到行输入为$。当读取它时,循环应该退出。

但是我得到的运行时异常为java.util.InputMismatchException

以下是代码:

while (scan.nextLine() != "$") {
    temp1 = scan.nextInt();
    temp2 = scan.nextInt();
    addEdge(temp1, temp2);
}

4 个答案:

答案 0 :(得分:6)

您需要使用您读入的行(在while条件中)。

当你调用nextLine()时,你不仅要检查它是否等于“$”,而且还要把它扔掉。

我假设您正在阅读如下输入:(我打赌你是)

1 2
3 4
0 1
4 5
$

尝试以下方法:

String nextLineStr;
while( !((nextLinestr = scan.nextLine()).equals("$")))
{
String tokens [] = nextLineStr.split(" ");
temp1 = Integer.parseInt(tokens[0]);
temp2 = Integer.parseInt(tokens[1]);
addEdge(temp1,temp2);
}

作为旁注:请注意,我为非等于方法切换了'!=',这是因为不应使用==或!=

来比较字符串

答案 1 :(得分:3)

首先,使用! equals代替!= 至于例外情况,您是否可以在nextInt来电中输入$?

答案 2 :(得分:2)

请改为尝试:

while (!"$".equals(scan.nextLine()))

答案 3 :(得分:0)

这两个陈述中的一个是抛出异常 -

        temp1 = scan.nextInt();
        temp2 = scan.nextInt();

正在发生的是在调用这些值时输入非整数值。