请教各位大佬了,当输入1的时候怎么进入下次循环?
我觉我功能界面的逻辑出现了问题,想了好半天想不到其他的方法
当输入1的时候怎么进入下次循环?
代码如下:
package com.imooc.circustest;
import java.util.Scanner;
import com.imooc.circus.Bear;
import com.imooc.circus.Clown;
import com.imooc.circus.Lion;
import com.imooc.circus.Menu;
import com.imooc.circus.Monkey;
import com.imooc.circus.Parrot;
public class CircusTest {
public static void main(String[] args) {
Menu menu = new Menu();
Scanner sc = new Scanner(System.in);
int input, keep;
while (true) {
menu.showMenu();
input = sc.nextInt();
switch (input) {
case 1:
// 棕熊Bear
Bear bear = new Bear("Bill", 1);
bear.act();
System.out.println();
break;
case 2:
// 狮子Lion
Lion lion = new Lion("Lain", 2, "灰色", '公');
lion.act();
System.out.println();
break;
case 3:
// 猴子Monkey
Monkey monkey = new Monkey("Tom", 1, "金丝猴");
monkey.act();
System.out.println();
break;
case 4:
// 鹦鹉
Parrot parrot = new Parrot("Rose", 1, "牡丹鹦鹉");
parrot.act();
System.out.println();
break;
case 5:
// 小丑Clown
Clown clown = new Clown("Kahle", 5);
clown.act();
System.out.println();
break;
}
System.out.println("********* 是否继续观看 (1/0) *********");
keep=sc.nextInt();
if(keep==1) {
//卡在这里了 当输入1的时候怎么进入下次循环?
}else if(keep==0){
System.out.println("退出程序!");
break;
}
}
}
}
正在回答 回答被采纳积分+1
同学你好,楼上同学的说法是正确的,根据题目要求:
1、检查贴出代码的实现,并没有多态的内容,为了体现多态,不建议去直接创建实现类的对象,应该先声明一个接口的引用,如:IAct actor=null;然后在case 语句后面进行对象的创建,如case 1后的代码为:actor= new Bear("Bill", 1);
最后act方法的调用写在switch结构的外面,即即if(actor!=null){actor.act(); }
从上述的流程上看,通过接口的引用指向了子类的对象,最后去调用act()方法,因为actor引用指向的对象不同,调用act()方法就会输出不同的结果。这就是多态的体现。
2、当选择表演项用户输入错误的时候,应该提示用户重新输入,并重新展示菜单,当问用户是否继续的时候,如果用户输入的不是1或0,应给出错误提示,让用户重新输入,直到用户输入0或1为止。
经过上边的改写,可以用这样的思路:
boolean a= true; while(a){ 展示表演菜单 boolean b= true; while(b){ 1、让用户输入选择 2、判断并通过switch结构给actor赋值,如果是1-5之间的数字,赋值b=false,判断iact是否为null,如果不为null,调用act方法。否则,输出提示信息,并再次展示表演菜单。 } boolean c= true while(c){ 1提示用户是否继续 2、让用户输入选择 3、判断用户输入的数字,如果是0则return。如果是1 则c=flase。其他提示用户输入有误 } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星