samedi 13 juillet 2019

Why isn't my loop meeting its conditions and why is my else keyword showing an error?

My assignment is to get a random number and have a user guess it. Firstly what is wrong with my else statement? It looks like it should work. Secondly the whole loop will just stop prompting for a guess sometimes even if you haven't guessed correctly or will ask you to guess again if you do get it right (i used a println to show the random letter for troubleshooting purposes). Thanks for the help!

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

public class RandoTest {

    public static void main(String[] args) {

        Random rnd = new Random();
        char c = (char) (rnd.nextInt(26) + 'a');
        int d = (char) c;

        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a letter (upper or lower case): ");
        char input = scan.next().trim().charAt(0);
        char low = Character.toLowerCase(input);
        int value = (char) low;

        if(d>value) 
        {
            System.out.println("Your guess comes after the secret letter");
            System.out.println("Enter a letter (upper or lower case): ");
            input = scan.next().trim().charAt(0);
            low = Character.toLowerCase(input);
            value = (char) low;
        }

        else if(d<value)
        {
            System.out.println("Your guess comes before the secret letter");
            System.out.println("Enter a letter (upper or lower case): ");
            input = scan.next().trim().charAt(0);
            low = Character.toLowerCase(input);
            value = (char) low;
        }

        else(value == d) 
        {
            System.out.println("You guessed it! \nThe letter was " + c);    
        }   
    }
}




Aucun commentaire:

Enregistrer un commentaire