Java:如何在用户需要时使用sentinel值退出程序

时间:2015-01-19 00:00:51

标签: java

我唯一缺少的就是使用一个哨兵值,比如零,在用户想要的时候退出循环,即使没有输入任何争论。

import java.util.Scanner;
import java.util.Random;

public class RandomGuessing {

    //-----------------------------------------------------------------------------------------------
    //This application prompt to the user to guess a number. The user can still playing until
    //guess the number or want to quit
    //-----------------------------------------------------------------------------------------------

    public static void main(String[] args) {

        Scanner scan = new Scanner (System.in);
        Random rand = new Random();

        int randNum = rand.nextInt(100) + 1;
        System.out.println(randNum);

        System.out.println("\t\tHi-Lo Game with Numbers\t\t\n\t   Guess a number between 1 and 100!!!\n");

        String ans;
        int attemptsCount = 0;

        do {

            System.out.print("Guess the number: ");
            int input = scan.nextInt();

            while(input != randNum){

                attemptsCount++;

                if(input < randNum){
                    System.out.println();
                    System.out.print("low guessing\nEnter new number: ");
                    input = scan.nextInt();
                }
                else{
                    System.out.println();
                    System.out.print("high guessing\nEnter new number: ");
                    input = scan.nextInt();
                }
            }

            System.out.println();
            System.out.println("Congrats!!! You guess right\nAttempts: "+attemptsCount);

            System.out.println();
            System.out.print("You want to play again (yes/no): ");
            ans = scan.next();

            randNum = rand.nextInt(100) + 1; //generate new random number between same above range, 
                                             //if the user wants to keep playing.

        }while (ans.equalsIgnoreCase("yes"));


    }
}

2 个答案:

答案 0 :(得分:1)

这是一个简单的方法:

// inside do loop
System.out.print("Guess the number (-1 to quit): ");
int input = scan.nextInt();
if (input == -1) {
    break;
}

答案 1 :(得分:0)

尝试使用此代码退出totaly:

System.exit(0);