首页 > 为何这样写JAVA的Scanner没有等待我输入?

为何这样写JAVA的Scanner没有等待我输入?

写了如下代码:但是启动的时候完全没有让我输入直接死循环.请问如何解决?

这是线程类:→

public class MultiThread implements Runnable
{
    private volatile String values;
    private volatile int swich;
    private static final String CLOSE = "close";
    
    @Override
    public void run()
    {
    while (swich < 1)
    {
        Scanner sc = new Scanner(System.in);
        values = sc.toString();
        if(values.equals(CLOSE)){
        System.out.println("close this thread!");
        swich = 1;
        continue;
        }
        System.out.println("input's :" + values);
    }
    }   
}

这是运行类:→

public class ExecutorServiceSim
{

    public static void main(String[] args)
    {
    
    int nThreads = 4;
    ExecutorService es = Executors.newFixedThreadPool(nThreads);
    es.submit(new MultiThread());
    es.shutdown();
    }

}

values = sc.toString(); //你的脑洞有点大

↓↓↓↓↓↓↓↓↓↓↓↓↓↓

values = scanner.next(); 
// 或
values = scanner.nextLine();

好吧,我没好好看代码,听楼下的吧,我的那个答案是错的

【热门文章】
【热门文章】