循环这边一直不对,是否继续观看每次输入1就没有提示了。但是还可以继续运行。
package com.task.zx7_2;
import java.util.Scanner;
public class Test {
public void notice(){
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、小丑 ********");
System.out.println();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
Test t=new Test();
IACT actor=null;
boolean ctrl=true;
boolean ctrl1=true;
boolean ctrl2=true;
while (ctrl) {
t.notice();
while (ctrl1) {
int i=sc.nextInt();
ctrl1=false;
ctrl2=true;
switch(i) {
case 1:
actor=new Bear("bill",1);
Bear bear=(Bear) actor;
System.out.println(bear.show());
bear.act();
break;
case 2:
actor=new Lion("Lain",2,"灰色","公熊");
Lion lion=(Lion) actor;
System.out.println(lion.show());
lion.act();
break;
case 3:
actor=new Monkey("Tom",1,"金丝猴");
Monkey monkey=(Monkey) actor;
System.out.println(monkey.show());
monkey.act();
break;
case 4:
actor=new Parrot("Rose",1,"牡丹鹦鹉");
Parrot parrot=(Parrot) actor;
System.out.println(parrot.show());
parrot.act();
break;
case 5:
actor=new Clown("Kahle",5);
Clown clown=(Clown) actor;
System.out.println(clown.show());
clown.act();
break;
default:
System.out.println("** 输入数字只能为1~5,请重新输入 **");
ctrl2=false;
ctrl1=true;
break;
}
while(ctrl2) {
System.out.println("****** 是否继续观看(1/0) ********");
int n = sc.nextInt();
switch (n) {
case 1:
ctrl2=false;
ctrl=true;
ctrl1=true;
break;
case 0:
System.out.println("******欢迎下次光临******");
ctrl2=false;
ctrl=false;
break;
default:
System.out.println("** 输入信息不正确,请重新输入 **");
}
}
}
}
}
}-------------------------------------
package com.task.zx7_2;
public abstract class Animal {
private String name;
private int age;
public Animal() {
}
public Animal(String name,int age) {
this.setName(name);
this.setAge(age);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public abstract void love();
public String show() {
return "表演者:"+this.getName()+"\n"+"年龄:"+this.getAge();
}
}
------------------------------------
package com.task.zx7_2;
public interface IACT {
void skill();
void act();
}
-------------------------
package com.task.zx7_2;
public class Bear extends Animal implements IACT {
public Bear() {
}
public Bear(String name,int age) {
super(name,age);
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:挽着花篮,打着雨伞,自立走秀");
}
@Override
public void act() {
// TODO Auto-generated method stub
skill();
love();
}
@Override
public void love() {
// TODO Auto-generated method stub
System.out.println("爱好:喜欢卖萌");
}
}
-------------------
package com.task.zx7_2;
public class Clown implements IACT {
private String name;
private int years;
public Clown() {
}
public Clown(String name,int years) {
this.setName(name);
this.setYears(years);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getYears() {
return years;
}
public void setYears(int years) {
this.years = years;
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:脚踩高跷,进行杂技艺术表演");
}
@Override
public void act() {
// TODO Auto-generated method stub
dress();
skill();
}
public void dress() {
System.out.println("着装:身穿五彩服饰,头上戴着彩色的帽子,脸上画着夸张的彩妆");
}
public String show() {
return "表演者:"+this.getName()+"\n"+"艺龄:"+this.getYears();
}
}
-------------------------
package com.task.zx7_2;
public class Lion extends Animal implements IACT {
private String color;
private String sex;
public Lion() {
}
public Lion(String name,int age,String color,String sex) {
super(name,age);
this.setColor(color);
this.setSex(sex);
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:擅长钻火圈");
}
@Override
public void act() {
// TODO Auto-generated method stub
skill();
love();
}
@Override
public void love() {
// TODO Auto-generated method stub
System.out.println("爱好:喜欢吃各种肉类");
}
public String show() {
return "表演者:"+this.getName()+"\n"+"年龄:"+this.getAge()+"\n"+"性别:"+this.getSex()+"\n"+"毛色:"+this.getColor();
}
}
---------------------
package com.task.zx7_2;
public class Monkey extends Animal implements IACT {
private String type;
public Monkey() {
}
public Monkey(String name,int age,String type) {
super(name,age);
this.setType(type);
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:骑独轮车过独木桥");
}
@Override
public void act() {
// TODO Auto-generated method stub
skill();
love();
}
@Override
public void love() {
// TODO Auto-generated method stub
System.out.println("爱好:喜欢模仿人的动作表情");
}
public String show() {
return "表演者:"+this.getName()+"\n"+"年龄:"+this.getAge()+"\n"+"品种:"+this.getType();
}
}
----------------------
package com.task.zx7_2;
public class Parrot extends Animal implements IACT {
private String type;
public Parrot() {
}
public Parrot(String name,int age,String type) {
super(name,age);
this.setType(type);
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:擅长模仿");
}
@Override
public void act() {
// TODO Auto-generated method stub
skill();
love();
}
@Override
public void love() {
// TODO Auto-generated method stub
System.out.println("爱好:喜欢吃坚果和松子");
}
public String show() {
return "表演者:"+this.getName()+"\n"+"年龄:"+this.getAge()+"\n"+"品种:"+this.getType();
}
}

正在回答

在case 1后面再加一条notice()语句后是可以正常运行的,下面的运行效果

建议你再试试。祝学习愉快!
每次输入1还是会有提示的,需要展示表演者的菜单,可以把notice方法放在下图位置。祝学习愉快~

- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星