Yekta Özdemir
Yekta Özdemir

Reputation: 83

Inner switch can't take user input

System.out.print("Please Select an Option...");
            selected = (char) System.in.read();
        }
    while (selected < '1' || selected > '5'); // || => OR
    //System.out.println("\n");

    switch (selected)
    {
        case '1':
            System.out.println("$: 6.08₺");
            System.out.println("€: 6.88₺");
            System.out.println("Gram Gold: 327₺");
            System.out.println("Bitcoin/TL: 57.462₺");
            System.out.println("Ripple/TL: 1.42₺");
            break;
        case '2':
            System.out.print("Select Your Bank Account...");
            **selectBankAccNum = (char) System.in.read();**
            System.out.println(selectBankAccNum + " sd");

When outer switch case is 2, my program printing Select your... part but it's not waiting user input, and finishing run.

Upvotes: 0

Views: 646

Answers (2)

Destroyer
Destroyer

Reputation: 795

    Scanner sc = new Scanner(System.in);  
    char c = sc.next().charAt(0); 

use this code to get the entered character

Upvotes: 1

Jason
Jason

Reputation: 5246

What you're looking for is Scanner#next(), not System.in#read(). You need to create a Scanner object using an InputStream, which in this case is System.in because it is an implementation PrintStream that implements InputStream.

Scanner scanner = new Scanner(System.in);

System.out.print("Please Select an Option...");

int selected = scanner.nextInt();

switch(selected) {
    case 1: 
        //your code
    break;

    case 2:
        System.out.print("Select Your Bank Account...");

        int account = scanner.nextInt();
    break;

}

Upvotes: 2

Related Questions