头晕 老师在看下这代码要怎么改啊
package Zoo;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal animal=new Bear();
IACT actor=null;
boolean a=true;
while(a) {
animal.show();
boolean b=true;
while(b) {
Scanner sc=new Scanner(System.in);
int i=sc.nextInt();
switch(i) {
case 1:
actor=new Bear("bill",2);
case 2:
actor=new Lion("laian",2,"灰","公");
case 3:
actor=new Monkey("tom",1,"金丝猴");
case 4:
actor=new Parrot("rose",1,"牡丹鹦鹉");
case 5:
actor=new Clown("kandle",5);
}
if(i>0||i<6) {
b=false;
if(actor!=null) {
actor.act();
}else{
System.out.println("信息不正确 请重新输入");
return;
}
}
}
boolean c=true;
while(c) {
System.out.println("是否继续观看0/1");
Scanner sc1=new Scanner(System.in);
int k=sc1.nextInt();
if(k!=0|k!=1) {
System.out.println("信息有误请重新输入");
break;
}
if(k==0) {
System.out.println("退出程序");
return;
}
if(k==1) {
c=false;
break;
}
}
}
}
}
正在回答 回答被采纳积分+1
你好!代码中的问题如下:
1、包名应该所有字母均小写。
2、下面的逻辑不正确,应该是i>0&&i<6,满足这个if语句的条件,就去执行actor.act()方法,否则输出信息输入不正确 ,请重新输入。把if(actor!=null)可以去掉,如果i>0&&i<6这个条件满足,actor不可能为null。再把return语句去掉,输入信息不正确可以重新输入,而不是直接return介绍方法的执行了。
return和return后面的}都去掉,并且所有的case 语句后面都要加break
3、上述改完后,是否继续观看执行时,无论输入什么数字都提示输入有误
因为此处的判断条件,当输入1时,k!=0为true就会执行if语句中的内容,改成k>1||k<0
然后将break改为continue,也就是当输入错了以后要重新输入。
如果还有问题 ,可以继续提问,祝学习愉快!
public class Test { public static void main(String[] args) { boolean flag = true; while (flag) { // 展示表演菜单 playList(); // 接收用户选择输入 Scanner input = new Scanner(System.in); boolean actorFlay = true; int index = 0; // 根据用户输入产生表演者 while (actorFlay) { index = input.nextInt(); IAct actor = createActor(index); if (actor != null) { //结束关于表演者产生的循环,并调用对应的表演方法 actorFlay = false; actor.act(); System.out.println(); }else{ System.out.println("** 输入信息不正确,请重新输入 **"); playList(); } } // 提醒是否继续观看表演 boolean nextFlag = true; while (nextFlag) { System.out.println("****** 是否继续观看(1/0) ******"); index = input.nextInt(); switch (index) { case 1: nextFlag = false; break; case 0: System.out.println("******* 欢迎下次光临 *******"); return; default: System.out.println("** 输入信息不正确,请重新输入 **"); break; } } } } /** * 表演菜单方法 */ private static void playList() { System.out.println("********欢迎来到太阳马戏团********"); System.out.println("********** 请选择表演者***********"); System.out.println("********** 1、棕熊 ***********"); System.out.println("********** 2、狮子 ***********"); System.out.println("********** 3、猴子 ***********"); System.out.println("********** 4、鹦鹉 ***********"); System.out.println("********** 5、小丑 ***********"); } /** * 生成表演者 * * @param index * 根据菜单选择表演者序号 * @return 产生的表演者对象 */ private static IAct createActor(int index) { IAct actor = null; switch (index) { case 1: actor = new Bear("Bill",1); break; case 2: actor = new Lion("Lain",2,"公狮","灰色"); break; case 3: actor = new Monkey("Tom",1,"金丝猴"); break; case 4: actor = new Parrot("Rose",1,"牡丹鹦鹉"); break; case 5: actor = new Clown("Kahle",5); break; } return actor; } }
同学可以参考这段代码,如果有问题,可以继续提问,祝学习愉快!
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星