java重新运行程序不使用do while循环

java重新运行程序不使用do while循环,java,do-while,Java,Do While,刚刚开始使用java,eclipse 我希望程序仅在按下“y”或“y”时继续运行 如果按下任何其他键,则结束程序 请帮忙 import java.io.*; public class TicketMaster{ public static void main(String args[]) throws IOException{ char choice; do{ choice ='\0'; //clear char System.out.p

刚刚开始使用java,eclipse

我希望程序仅在按下“y”或“y”时继续运行

如果按下任何其他键,则结束程序

请帮忙

import java.io.*;


public class TicketMaster{

public static void main(String args[]) throws IOException{

    char choice;

    do{
        choice ='\0'; //clear char
        System.out.println("First Test \t\t" + choice);

        //rerun program
        System.out.println("Run Program Again: ");
        choice = (char) System.in.read();

        //testing
        if(choice == 'y' || choice == 'Y')
            System.out.println("Contine \t\t" + choice);
        else
            System.out.println("End Program \t\t" + choice);


        System.out.println("\n\n\n");
    }
    while(choice == 'y' || choice == 'Y');


} //end main method
} //end class
使用此代码:

    if(choice == 'y' || choice == 'Y')
        System.out.println("Contine \t\t" + choice);
    else{
        System.out.println("End Program \t\t" + choice);
        System.exit(0);
    }
或者,如果您不想让程序完全退出,而只是为了打破while循环,就可以这样做

    if(choice == 'y' || choice == 'Y')
        System.out.println("Contine \t\t" + choice);
    else{
        System.out.println("End Program \t\t" + choice);
        break;
    }
使用此代码:

    if(choice == 'y' || choice == 'Y')
        System.out.println("Contine \t\t" + choice);
    else{
        System.out.println("End Program \t\t" + choice);
        System.exit(0);
    }
或者,如果您不想让程序完全退出,而只是为了打破while循环,就可以这样做

    if(choice == 'y' || choice == 'Y')
        System.out.println("Contine \t\t" + choice);
    else{
        System.out.println("End Program \t\t" + choice);
        break;
    }
使用此代码:

    if(choice == 'y' || choice == 'Y')
        System.out.println("Contine \t\t" + choice);
    else{
        System.out.println("End Program \t\t" + choice);
        System.exit(0);
    }
或者,如果您不想让程序完全退出,而只是为了打破while循环,就可以这样做

    if(choice == 'y' || choice == 'Y')
        System.out.println("Contine \t\t" + choice);
    else{
        System.out.println("End Program \t\t" + choice);
        break;
    }
使用此代码:

    if(choice == 'y' || choice == 'Y')
        System.out.println("Contine \t\t" + choice);
    else{
        System.out.println("End Program \t\t" + choice);
        System.exit(0);
    }
或者,如果您不想让程序完全退出,而只是为了打破while循环,就可以这样做

    if(choice == 'y' || choice == 'Y')
        System.out.println("Contine \t\t" + choice);
    else{
        System.out.println("End Program \t\t" + choice);
        break;
    }

由于
read
仅从
InputStream
读取单个字符,因此需要手动使用换行符

choice = (char) System.in.read();
System.in.read(); // added - consumes newline

由于
read
仅从
InputStream
读取单个字符,因此需要手动使用换行符

choice = (char) System.in.read();
System.in.read(); // added - consumes newline

由于
read
仅从
InputStream
读取单个字符,因此需要手动使用换行符

choice = (char) System.in.read();
System.in.read(); // added - consumes newline

由于
read
仅从
InputStream
读取单个字符,因此需要手动使用换行符

choice = (char) System.in.read();
System.in.read(); // added - consumes newline

问题似乎是,即使输入了
'Y'
'Y'
,程序也会结束

原因是在按Enter键之前,不会向Java发送任何输入。这将在输入流上放置整行输入和换行符

while
循环的第一次迭代正确识别
'y'
'y'
,但下一次循环立即运行并检测不匹配的换行符


切换到使用一次读取整行输入,您可以提取
字符串的第一个字符
,查看它是
'y'
还是
'y'
。这将丢弃换行符。

问题似乎是,即使输入了
'Y'
'Y'
,程序仍将结束

原因是在按Enter键之前,不会向Java发送任何输入。这将在输入流上放置整行输入和换行符

while
循环的第一次迭代正确识别
'y'
'y'
,但下一次循环立即运行并检测不匹配的换行符


切换到使用一次读取整行输入,您可以提取
字符串的第一个字符
,查看它是
'y'
还是
'y'
。这将丢弃换行符。

问题似乎是,即使输入了
'Y'
'Y'
,程序仍将结束

原因是在按Enter键之前,不会向Java发送任何输入。这将在输入流上放置整行输入和换行符

while
循环的第一次迭代正确识别
'y'
'y'
,但下一次循环立即运行并检测不匹配的换行符


切换到使用一次读取整行输入,您可以提取
字符串的第一个字符
,查看它是
'y'
还是
'y'
。这将丢弃换行符。

问题似乎是,即使输入了
'Y'
'Y'
,程序仍将结束

原因是在按Enter键之前,不会向Java发送任何输入。这将在输入流上放置整行输入和换行符

while
循环的第一次迭代正确识别
'y'
'y'
,但下一次循环立即运行并检测不匹配的换行符


切换到使用一次读取整行输入,您可以提取
字符串的第一个字符
,查看它是
'y'
还是
'y'
。这将丢弃换行符。

遗憾的是,Java通常不支持我认为您正在尝试的操作,我认为这是在控制台上检测按键,而不按enter键。有关如何实现这一点的讨论,请参阅。

遗憾的是,Java通常不支持我认为您正在尝试的操作,我认为这是在不按enter键的情况下检测控制台上的按键。有关如何实现这一点的讨论,请参阅。

遗憾的是,Java通常不支持我认为您正在尝试的操作,我认为这是在不按enter键的情况下检测控制台上的按键。有关如何实现这一点的讨论,请参阅。

遗憾的是,Java通常不支持我认为您正在尝试的操作,我认为这是在不按enter键的情况下检测控制台上的按键。有关如何实现这一点的讨论,请参阅。

您仍然无法在每次迭代之间进行选择。如果键入yyy并按enter键,循环将重复4次,然后执行(或循环)结束。您仍然无法在每次迭代之间进行选择。如果键入yyy并按enter键,循环将重复4次,然后执行(或循环)结束。您仍然无法在每次迭代之间进行选择。如果键入yyy并按enter键,循环将重复4次,然后执行(或循环)结束。您仍然无法在每次迭代之间进行选择。如果键入yyy并按enter键,循环将重复4次,然后执行(或循环)结束。