[英]Switch statement + user input
Thanks for taking your time to help me. 感谢您抽出宝贵的时间来帮助我。 I need this switch statement to only accept ints 1-4. 我需要此switch语句仅接受整数1-4。 Any others entered will ask for input again. 输入的其他任何内容都会再次要求输入。 Entering 5 will quit the system. 输入5将退出系统。
System.out.println("A random numbers list has been generated for you:\n ");
System.out.println("Choose an option:\n1)Form list to be heapified.\n2)Enqueue the integer 10" +
"\n3)Dequeue the integer 10.\n4)Print the updated heap.\n5)Quit the system \n>>");
Scanner scanner = new Scanner( System.in );
int var = 0;
String input = scanner.next();
int answer = Integer.parseInt(input);
do{
input = scanner.next();
answer = Integer.parseInt(input);
var = answer;
switch(var){
case 1:
for (int i = 0; i < 20; i++) {
h.insert(new Integer((int)(100 * Math.random())), i);
}
break;
case 2:
System.out.println("\nEnqueue-ing 10...\n");
pushFoward(10, 20);//priority 20
break;
case 3:
System.out.println("\nDequeue-ing 10...\n");
dequeue;//priority highest deleted
break;
case 4:
while (h.heapsize() > 0) {
System.out.print(h.pop() + " ");
}
break;
}
}while(var ==1 || var==2 || var==3
|| var==4);
I cant seem to get it right. 我似乎无法正确处理。 Keep making it worse. 继续恶化。
Edited: 编辑:
do{
String input = scanner.next();
int answer = Integer.parseInt(input);
switch(var){
case 1:
for (int i = 0; i < 20; i++) {
h.insert(new Integer((int)(100 * Math.random())), i);
}
break;
case 2:
System.out.println("\nEnqueue-ing 10...\n");
h.pushFoward(10, 20);//priority 20
break;
case 3:
System.out.println("\nDequeue-ing 10...\n");
h.dequeue();//priority highest deleted
break;
case 4:
while (h.heapsize() > 0) {
System.out.print(h.pop() + " ");
}
break;
default: input = scanner.next();
break;
}
}while(var!=5)
; ;
Try adding a "default:" statement, like this: 尝试添加“ default:”语句,如下所示:
switch(var){
case 1:
for (int i = 0; i < 20; i++) {
h.insert(new Integer((int)(100 * Math.random())), i);
}
break;
case 2:
System.out.println("\nEnqueue-ing 10...\n");
pushFoward(10, 20);//priority 20
break;
case 3:
System.out.println("\nDequeue-ing 10...\n");
dequeue;//priority highest deleted
break;
case 4:
while (h.heapsize() > 0) {
System.out.print(h.pop() + " ");
}
break;
default:
*Add whatever code you want to execute if its greater then or equal to 5 here!*
}while(var ==1 || var==2 || var==3
|| var==4);
You can set a 'default' case. 您可以设置“默认”大小写。
default: doSomething();
break;
This will be invoked when a user enters a value that isn't one of your cases. 当用户输入的值不是您的情况之一时,将调用此方法。
} while (answer != 5);
This should make the loop break when 5 is entered. 输入5时,这应该使循环中断。
EDIT: 编辑:
Also, you need to switch on the answer variable instead of 'var' 另外,您需要打开答案变量而不是'var'
switch(answer) {
You don't need to put it in a loop. 您无需将其循环。 The use case is simple: 用例很简单:
else: ask for input again 其他:再次要求输入
public static void main(String[] args) { 公共静态void main(String [] args){
Scanner scanner = new Scanner(System.in); int answer = Integer.parseInt(scanner.next()); switch(answer) { case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; case 4: System.out.println(4); break; case 5: return; // System.exit(0) or quit however you want to default: answer = Integer.parseInt(scanner.next()); }
} }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.