头晕 老师在看下这代码要怎么改啊
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 星