猿问

如何修复扫描仪以在 Java 中在一段时间内工作?

我正在做一个简单的“算命”程序,只是为了好玩!但是,我似乎无法让我的扫描仪第二次读取此人的姓名,


我应该关闭扫描仪吗?如果有,在哪一部分?我尝试在循环结束时将其关闭repeat==true,但效果不佳。


do{

    int n = rand.nextInt(50);

    int m = rand.nextInt(50);

    int o = rand.nextInt(50); 


    System.out.println("blah blah fortune");

    System.out.println("input your name"); // This part doesn't work the second time

    String name = scanner.nextLine();


    System.out.println();

    Prediction(name,n,m,o);

    System.out.println();


    do{

        System.out.println("do you wish to guess another fortune?");

        System.out.println("1 is yes other number no");

        //this part I will omit tests if the answer is valid and if it should repeat itself, it works for now.

    }

    while(!valid);

}

while (repeat==true);

现在它跳过了写名字的选项,只是用一个空格作为名字来算命,但循环在其他方面运行良好。


它应该询问下一个它要读取其命运的人的名字。


白衣染霜花
浏览 127回答 2
2回答

jeck猫

您的代码看起来很适合与Scanner. 我会再看看你的循环(不清楚内部do...while()循环在做什么)以及你的其他代码中还有什么(什么是Prediction?你的设置方式是否存在错误valid?)。这是一个非常简单的循环,Scanner永远循环,询问一个名字,打印这个名字:Scanner scanner = new Scanner(System.in);do {    System.out.println("input your name");    String name = scanner.nextLine();    System.out.println("name: " + name);} while (true);

弑天下

do{int n = rand.nextInt(50);int m = rand.nextInt(50);int o = rand.nextInt(50); System.out.println("blah blah fortune");System.out.println("input your name"); // This part doesn't work the second timeString name = scanner.next();System.out.println();Prediction(name,n,m,o);System.out.println(); System.out.println("do you wish to guess another fortune?");    System.out.println("1 is yes other number no");    //this part I will omit tests if the answer is valid and if it should repeat    itself, it works for now. } while (repeat==true);使用 scanner.next() 而不是 nextLine(),nextLine() 将在下次开始时将空行作为输入,因此使用 next()。这就是为什么它不接受输入的原因。您可以只用一个 while 循环实现相同的功能,但不确定您的要求是什么。
随时随地看视频慕课网APP

相关分类

Java
我要回答