mardi 6 décembre 2016

Taking guesses from a user with else if statements?

My program takes either 5, 10, 0r 20 guesses from the user. The user is supposed to guess a random number picked by the computer. The users guess should be between 1 and 100. If the user enters a guess over 100 or below 0, the program should ignore it and ask for that guess again. For example if the program asked "please enter guess #1" and the user entered 234, it would again say "please enter guess #1."

For some reason, my code is not doing so. If the user entered 234 for the first guess, it would move along to guess 2. Can someone explain why my code isn't doing this?

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

public class NewClass 
{
  public static void main(String [] args)  
  {
     final String SENTINEL = "no"; 
     int guess;


      Scanner scan = new Scanner( System.in );


      System.out.print( " Please enter your name: ");
      String name = scan.next();


      System.out.print(" Would you like to try to guess a number? (Yes or No):");
      String answer = scan.next();


        if (answer.length() ==3)
        System.out.print("How many guesses would you like? (5, 10, 20)");
         int numberOfGuesses = scan.nextInt();


         Random random = new Random();

         int randomNumber = random.nextInt(100) + 1;


          for(int i = 1; i <= numberOfGuesses; i++){
   System.out.print("Enter guess #"+i+": ");
   guess = scan.nextInt();
   {
   if (guess > randomNumber && guess <= 100)
      System.out.println("Your guess, "+guess+", is greater than the magic number.");
   else if (guess < randomNumber && guess > 0)
      System.out.println("Your guess, "+guess+", is less than the magic number.");
   else if (guess == randomNumber){
      System.out.println("Congratulations, "+name+"! You guessed the magic number in "+i+" guesses.");
      break;
 }
   if (i == numberOfGuesses)
        System.out.println("Sorry, " +name+", you did not guess the magic number, " + randomNumber+ ", in "+numberOfGuesses+ " tries.");

          }








  }}  }

Aucun commentaire:

Enregistrer un commentaire