如果条件变为真,如何停止while循环读取文件的每一行?
我的程序中有这个特殊的代码
while(scanner.hasNext()){
contents = scanner.nextLine();
if((contents.contains(username))&&(contents.contains(password))){
call.fileManager();
}
if((!contents.contains(username))&&(!contents.contains(password))){
JOptionPane.showMessageDialog(null, "Invalid username/password! Check your spelling/capitalization.", "Error!", JOptionPane.ERROR_MESSAGE);
call.loginFrame();
}
}
我希望在条件满足后退出循环。例如,如果在文件中找到特定内容,它将转到第一个if,然后调用文件管理器并退出。如果找不到内容,它将转到第二个If语句
更新: 好像我忘记休息了。我为这个愚蠢的问题感到抱歉:)
更新: 不,休息并没有解决我的问题。更多的是这样做的。我使用计数器读取每一行,并使用一个计数器进行递减和递增。之后,我从读取行的计数器中减去递减/递增的计数器。当然,如果没有读取任何内容,它将返回0
# 1 楼答案
可以使用
break
终止while
循环。而且,在给定的点上,只满足其中一个条件。因此,使用if...else
构造可以获得更好的性能(不过,在这种情况下,差异不会清晰可见!)。 但它肯定会减少编译器内部的工作# 2 楼答案
像下面这样使用
break
对于你的代码来说应该是这样的