Java 如何使用扫描仪作为暂停?
我正在编写一个程序,它可以不间断地通过循环运行,用户可以选择随时暂停。我想使用Scanner作为一种手段,让用户输入他们想要暂停程序的操作,但是程序每次循环时都会暂停,并且用户必须在代码继续之前输入一些内容。我的代码如下所示:Java 如何使用扫描仪作为暂停?,java,loops,java.util.scanner,Java,Loops,Java.util.scanner,我正在编写一个程序,它可以不间断地通过循环运行,用户可以选择随时暂停。我想使用Scanner作为一种手段,让用户输入他们想要暂停程序的操作,但是程序每次循环时都会暂停,并且用户必须在代码继续之前输入一些内容。我的代码如下所示: for (int i = 0; i < 10; i++) { String pause = scan.next() { if (pause.equals("pause") {
for (int i = 0; i < 10; i++)
{
String pause = scan.next()
{
if (pause.equals("pause")
{
//break mechanism
}
}
}
for(int i=0;i<10;i++)
{
字符串pause=scan.next()
{
if(暂停等于(“暂停”)
{
//断裂机制
}
}
}
有什么想法可以让我暂时停顿一下使用它吗?我在想可能是“如果3秒钟过去,继续”之类的,但我不确定这是否有效,或者如何编写代码。谢谢您的帮助。我理解的是:
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
WorkerThread workerThread = new WorkerThread();
PausingThread pausingThread = new PausingThread(workerThread);
workerThread.start();
pausingThread.start();
}
}
class WorkerThread extends Thread{
@Override
public void run() {
while (true)
{
//Your work is being done
}
}
}
class PausingThread extends Thread{
WorkerThread workerThread;
PausingThread(WorkerThread thread){
this.workerThread = thread;
}
@Override
public void run() {
Scanner scan = new Scanner(System.in);
while (scan.next().equals("pause")){
try {
System.out.println("workerThread sleeping");
workerThread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
这将起作用…可能是这样的:
for (int i = 0; i < 10; i++)
{
String pause = scan.next()
{
if (pause.equals("pause")
{
//break mechanism
}
}
}
while(scan.hasNext()){
字符串pause=scan.next();
if(pause.equals(“pause”))
{
//停止
}
}
据我所知,当for循环完成时,您的程序将停止。现在,while循环将在没有更多输入时完成。也许我认为它对您的想法有帮助
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.generic;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* @author wilso
*/
public class prueba {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (true) {
String pause = scan.next();
if (pause.toLowerCase().equals("pause")) {
System.out.println("Esperando quitar el modo pause");
pause = scan.next();
}
}
}
}
你能详细解释一下,为什么要这样做吗?我想这有助于:)如果用户按键暂停,程序不会停止,因为循环是持续的。你的意思是如果用户写入暂停,程序不会停止stopping@DeepakJasawat我确实想让它停下来,但只有几次。我希望程序能连续运行,除非我输入“暂停”。现实生活中的一个例子:看电视。我的代码现在的工作方式,就像电视每秒钟暂停一次,直到我取消暂停。我希望它像电视一样独立运行,直到我决定按下暂停按钮。我希望这是有道理的。@Deepak Jasawat只需要一个break@DylanK25_现在检查它,以及用户如何停止暂停模式并再次输入?然后您不需要结束循环,您可以添加中断tne next pause=scan.next();