循环这边一直不对,是否继续观看每次输入1就没有提示了。但是还可以继续运行。

循环这边一直不对,是否继续观看每次输入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();

}

}

http://img1.sycdn.imooc.com//climg/5af3d3e20001887608470320.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

http://img1.sycdn.imooc.com//climg/5af4f0340001fa4107710397.jpg

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

http://img1.sycdn.imooc.com//climg/5af4f098000178b004680472.jpg

建议你再试试。祝学习愉快!

好帮手慕雪 2018-05-10 18:08:00

case 1:之后,ctrl1应该设置为false了,否则无法退出 while (ctrl1) 进入while (ctrl) {呀,

那你就无法走,while (ctrl) {中的  t.notice()了。祝:学习愉快

          


  • 提问者 simonjaxon #1
    如果ctrl1设置为false,输入1之后就会进入死循环。
    2018-05-10 20:17:28
chrismorgen 2018-05-10 13:47:03

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

http://img1.sycdn.imooc.com//climg/5af3dc720001186f08150287.jpg

  • 提问者 simonjaxon #1
    你好,感谢你的回复。不过我想的是要是否继续观看(1/0)选择 后再展示表演者菜单。我在内层switch循环里面设置了外层循环为true,但是每次输入1后并没有我想要的表演者菜单显示。请问该如何改进呢?
    2018-05-10 15:20:38
  • chrismorgen 回复 提问者 simonjaxon #2
    建议同学将t.notice();这行代码放在上图标记的位置,你在测试一遍,祝学习愉快~
    2018-05-10 15:53:51
  • 提问者 simonjaxon 回复 chrismorgen #3
    我试过了,但还是不行。
    2018-05-10 17:43:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师