我想让这个程序循环,直到用户输入N为否

时间:2014-02-05 16:11:14

标签: java

import java.util.Scanner;

public class CheckPassFail {
    static char tr;

    public static void main(String[] args){
        do{
            Scanner x = new Scanner(System.in);
            double mark;
            System.out.println("Enter a random number :");
            mark = x.nextDouble();
            double g = mark%2;
            if(g==0)
                System.out.println("BREAK EVEN");
            else
                System.out.println("PRETTY ODD");
            System.out.println("You want to try another number?\nY = YES and N = NO");
            tr = x.next().charAt(0);
        }
        while(tr == 'Y');
    }

}

4 个答案:

答案 0 :(得分:3)

第一个:添加一个toUpperCase()来删除小写字符(因此y的解释方式与Y相同。

tr = x.next().toUpperCase().charAt(0);

第二个:你说要循环直到有N.为此只需要替换

while(tr == 'Y');

while(tr != 'N');

除此之外,你的代码似乎应该做它应该做的事情。我测试了它,它应该工作。

答案 1 :(得分:2)

您可以尝试这样做:

Scanner in = new Scanner(System.in); //Instantiate outside of loop.
String str = ""; //Define and initialize before the loop as well to avoid a null pointer exception.

do {
    str = in.next();

} while (str.startsWith("Y"));

此外,您应该在循环外实例化Scanner对象。这样,您不必每次迭代都不必要地重新实例化一个全新的实例。

答案 2 :(得分:1)

你不需要使用tr变量

while(x.next().equals("Y"));

答案 3 :(得分:1)

您可以使用while(tr != 'N');代替while(tr == 'Y');