因此,基本上,我试图创建两个命令!on和!off,当用户键入!on时,它将启动此infinite循环,一旦用户键入!off,则无限for循环将停止。 我已经尝试了许多方法,但是它不起作用,例如另一个for循环,例如:
if(userInput.equalsIgnoreCase("!on"){
for(int i=0; i<10){
*random code*
}
}
if(userInput.equalsIgnoreCase("!off"){
i = 10;
}
我也尝试过布尔值,但是代码不会在无限循环结束后执行。
在发表评论之前,请阅读: 我希望此循环为无限循环,但我的问题是用户是否输入!off可以停止循环的无限循环。
基本上我想问的是是否有可能摆脱无限循环
答案 0 :(得分:0)
似乎问题出在您的for循环中。
您的for循环for(int i=0; i<10)
触发了一个无限循环,因为变量i并未增加,并且将无限地保持在10以下。
用for (int i = 0; i < 10; ++i)
替换for循环,看看执行循环是否仍会导致无限循环。
答案 1 :(得分:0)
首先,这在逻辑上和语法上都是胡说八道。不要这样做。
if(userInput.equalsIgnoreCase("!on"){
for(int i=0; i<10){
*random code*
}
}
if(userInput.equalsIgnoreCase("!off"){
i = 10;
}
您正在寻找的可能更接近此:
if(userInput.equalsIgnoreCase("!on"){
while(true){ //proper way to start an infinite loop
userinput = /* read user input with your preferred method */;
if(userInput.equalsIgnoreCase("!off"){
break; //break ends the closest loop
}
}
}
答案 2 :(得分:0)
您将需要使用多线程。让一个线程运行您的无限循环,另一线程获取用户输入以停止该线程运行循环。
多线程基础:https://www.geeksforgeeks.org/multithreading-in-java/
请求线程停止:https://praveer09.github.io/technology/2015/12/06/understanding-thread-interruption-in-java/
答案 3 :(得分:0)
您可以通过检查变量来打破循环:
<form class="ui form">
<div class="field">
<label>First Name</label>
<input type="text" name="first-name" placeholder="First Name">
</div>
<div class="field">
<label>Last Name</label>
<input type="text" name="last-name" placeholder="Last Name">
</div>
<div class="field">
<div class="ui checkbox">
<input type="checkbox" tabindex="0" class="hidden">
<label>I agree to the Terms and Conditions</label>
</div>
</div>
<button class="ui button" type="submit">Submit</button>
</form>
答案 4 :(得分:0)
据我了解,您想要一个不断循环直到满足特定条件的循环。考虑下面的用Java编写的while
循环:
public static void main(String[] args) {
String userInput = "!on";
while (isUserInputOn(userInput)) {
System.out.println("Do stuff");
userInput = getUserInput(); // Then something changes the state of userInput
}
}
private static boolean isUserInputOn(String userInput) {
return "!on".equalsIgnoreCase(userInput);
}
private static String getUserInput() {
double random = Math.random() * 10D;
if(random > 5) {
return "!on";
} else {
return "!off";
}
}
请注意,方法getUserInput()
检查userInput
中的更改,并且此方法需要写入您的业务逻辑,因为当前它使用的是随机双数。