Reputation: 23
I tried to make a multiple random pick ups that would print the message for each input number, i.e. serie of numbers (4 2 17 0) where 0 will stop the code. Got wrong output
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number=scanner.nextInt();
int x = number;
do{switch(x) {
case 1:
System.out.println("Language selection");
break;
case 2:
System.out.println("Customer support");
break;
case 3:
System.out.println("Check the balance");
break;
case 4:
System.out.println("Check loan balance");
break;
case 0:
System.out.println("Exit");
break;
default:
return;
}
if (x==0)
{break;}
x++;
}
while (true);
}
} ```


Upvotes: 2
Views: 829
Reputation: 79165
You can use Scanner#hasNextInt
to terminate the loop when integers are exhausted.
Demo:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int x = scanner.nextInt();
switch (x) {
case 1:
System.out.println("Language selection");
break;
case 2:
System.out.println("Customer support");
break;
case 3:
System.out.println("Check the balance");
break;
case 4:
System.out.println("Check loan balance");
break;
case 0:
System.exit(0);
}
}
}
}
A sample run:
4 2 17 0
Check loan balance
Customer support
Also, note that you need break
to avoid the cases falling through inadvertently. I did not see any use of default
in this case and therefore, I have removed it from the demo code.
Alternatively, using a do-while loop:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = 0;
do {
x = scanner.nextInt();
switch (x) {
case 1:
System.out.println("Language selection");
break;
case 2:
System.out.println("Customer support");
break;
case 3:
System.out.println("Check the balance");
break;
case 4:
System.out.println("Check loan balance");
break;
}
} while (x != 0);
}
}
Upvotes: 2