目前就剩下一个问题没解决了,请老师帮忙看看。谢谢

目前就剩下一个问题没解决了,请老师帮忙看看。谢谢

public abstract class Animal {
	/**
	 * 定义属性 name 和age.
	 */
	
	private String name;
	private int age;
	
	
	/**
	 * 对私有属性进行封装
	 * @return
	 */
	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;
	}

	/**
	 * 建立抽象方法love();
	 */

	public abstract String love();
}
public abstract interface IAct {
	public abstract String skill();
	public abstract String act();
}
public class Bear extends Animal implements IAct {

	
	/**
	 * 构造无参和有参方法.用来写入属性值
	 */
	public 	Bear() {
		
	}
	public 	Bear(String name,int age) {
		this.setName(name);
		this.setAge(age);
		
	}
	
	/**
	 * 重写父类方法love()
	 */
	@Override
	public String love() {
		
		return "喜欢卖萌" ;
		
	}
	/**
	 * 重写接口方法 skill()
	 * 
	 */
	@Override
	public String skill() {
		return	"挽着花篮,打着雨伞,自立走秀";
		
	}
	
	

	
	/**
	 * 重写并且实现接口方法act()
	 */
	@Override
	public String act() {
		
		 String str = "表演者:"+this.getName()+"\n年龄:"+this.getAge()+"岁\n技能:"+
					this.skill()+"\n爱好:"+this.love();
		 return str;
	}

}
public class Lion extends Animal implements IAct {
	/**
	 * 定义私有参数color,sex
	 */
	private String color,sex;
	
	
	/**
	 * 构造无参和有参方法.用来写入属性值
	 */
	public Lion() {
		
	}
	
	public Lion(String name,int age ,String color,String sex) {
		this.setName(name);
		this.setAge(age);
		this.setColor(color);
		this.setSex(sex);
	}
	
	
	/**
	 * 对私有属性进行封装
	 * @return
	 */
	
	
	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;
	}

	
	/**
	 * 重写父类方法love()
	 */
	@Override
	public String love() {
		return "喜欢吃各种肉类";	
	}

	
	/**
	 * 重写接口方法 skill()
	 * 
	 */
	@Override
	public String skill() {
		return "擅长钻火圈";
		
		
	}
	

	/**
	 * 重写并且实现接口方法act()
	 */
	@Override
	public String act() {
		String str = "表演者:"+this.getName()+"\n年龄:"+this.getAge()+"岁\n性别:"+this.getSex()+"狮\n毛色:"+this.getColor()+"\n技能:"+
				this.skill()+"\n爱好:"+this.love();
		return str;
		
		
	}

}
public class Monkey extends Animal implements IAct {
	/**
	 * 定义私有参数type
	 */
	private String type;
	
	/**
	 * 构造无参和有参方法.用来写入属性值
	 */
	public Monkey() {
		
	}
	public Monkey(String name,int age,String type) {
		this.setName(name);
		this.setAge(age);
		this.setType(type);
	}
	
	
	

	/**
	 * 对私有属性进行封装
	 * @return
	 */
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	/**
	 * 重写父类方法love()
	 */
	@Override
	public String love() {
		return "喜欢模仿人的动作表情";	
	}
	
	
	
	/**
	 * 重写接口方法 skill()
	 * 
	 */
	@Override
	public String skill() {
		return "骑独轮车过独木桥";
	}
	/**
	 * 重写并且实现接口方法act()
	 */
	@Override
	public String act() {
		String str = "表演者:"+this.getName()+"\n年龄:"+this.getAge()+"岁\n品种:"+this.getType()+"\n技能:"+
				this.skill()+"\n爱好:"+this.love();
		return str;
		
	}

}
public class Parrot extends Animal implements IAct {
	/**
	 * 定义私有参数type
	 */
	private String type;
	/**
	 * 构造无参和有参方法.用来写入属性值
	 */
	
	public Parrot() {
		
	}
	
	public Parrot(String name,int age,String type) {
		this.setName(name);
		this.setAge(age);
		this.setType(type);
	}
	
	
	
	/**
	 * 对私有属性进行封装
	 * @return
	 */
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	
	/**
	 * 重写父类方法love()
	 */
	@Override
	public String love() {
		return "喜欢吃坚果和松子";
		
	}
	
	
	/**
	 * 重写接口方法 skill()
	 * 
	 */
	@Override
	public String skill() {
		return "擅长模仿";
		
	}
	
	
	

	@Override
	public String act() {
		String str = "表演者:"+this.getName()+"\n年龄:"+this.getAge()+"岁\n品种:"+this.getType()+"\n技能:"+
				this.skill()+"\n爱好:"+this.love();
		return str;
		
	}

}
public class Clown implements IAct {
	/**
	 * 定义私有参数type
	 */
	private String name;
	private int years;
	
	/**
	 * 构造无参和有参方法.用来写入属性值
	 */
	public Clown(){
		
	}
	public Clown(String name,int years){
		this.setName(name);
		this.setYears(years);
	}
	
	
	/**
	 * 对私有属性进行封装
	 * @return
	 */
	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;
	}

	public String dress() {
		return "身穿五彩服装,头上戴着彩色的帽子,脸上画着夸张的彩妆";
		
	}
	
	/**
	 * 重写接口方法 skill()
	 * 
	 */
	
	@Override
	public String skill() {
		return "脚踩高跷,进行杂技魔术表演";
		
	}

	@Override
	public String act() {
		String str = "表演者:"+this.getName()+"\n艺龄:"+this.getYears()+"年\n着装:"+
				this.dress()+"\n技能:"+this.skill();
		return str;
		
	}

}
public class Menu {
	
	
	public void select() {
		System.out.println("********  是否继续观看(1/0)  ********");
	}
	
	
	
	public void info() {
		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、小丑      **********");
	
	}

}
import java.util.InputMismatchException;
import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		int input ;
		Menu mu = new Menu();
		mu.info();
		Scanner sc = new Scanner(System.in);
		IAct actor=null;
		while(true) {
			try {
				input = sc.nextInt();
			}catch(InputMismatchException e){
				System.out.println( "输入的不是数字,请重新输入");
				sc.next();
				continue;
			}
			switch(input) {
			case 1:
				actor= new Bear("Bill", 1);
				System.out.println( actor.act());
				break;
			case 2:
				System.out.println( "================");
				actor = new Lion("Lain",2,"灰色","公");
				System.out.println( actor.act());
				break;
			case 3:
				System.out.println( "================");
				actor = new Monkey("Tom",1,"金丝猴");
				System.out.println( actor.act());
				break;
			case 4:
				System.out.println( "================");
				actor = new Parrot("Rose",1,"牡丹鹦鹉");
				System.out.println( actor.act());
				break;
			case 5:
				System.out.println( "================");
				actor = new Clown("Kahle",5);
				System.out.println( actor.act());
				break;
			default:
				System.out.println( "输入的数字不对,请重新输入");
				continue;	
			}
			mu.select();
			
				try {
					input = sc.nextInt();
					if (input!=1 && input!=0 ) {
						System.out.println( "输入的数字不对,请重新输入");
						break;
					}else if(input==1) {
						mu.info();
						continue;
					}else {
						System.out.println( "********谢谢观赏,欢迎下次再来!**********");
						return;
					}
				}catch(InputMismatchException e){
					System.out.println( "输入的不是数字,请重新输入");
					sc.next();
					continue;
				}
				/*switch(input) {
				case 0:
					System.out.println( "********谢谢观赏,欢迎下次再来!**********");
					return;
				case 1:
					mu.info();
					continue;
				}*/
			
		}
		

问题就是:

当我在是否继续选择观看时,输入的不是1或者0 ,就会退出,请问那段程序要怎么改?


另外程序还有什么其他问题吗?

正在回答

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

3回答
import java.util.InputMismatchException;
import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
        int input ;
        Menu mu = new Menu();
        mu.info();
        Scanner sc = new Scanner(System.in);
        IAct actor=null;
        while(true) {
            try {
                input = sc.nextInt();
            }catch(InputMismatchException e){
                System.out.println( "输入的不是数字,请重新输入");
                sc.next();
                continue;
            }
            switch(input) {
            case 1:
                actor= new Bear("Bill", 1);
                System.out.println( actor.act());
                break;
            case 2:
                System.out.println( "================");
                actor = new Lion("Lain",2,"灰色","公");
                System.out.println( actor.act());
                break;
            case 3:
                System.out.println( "================");
                actor = new Monkey("Tom",1,"金丝猴");
                System.out.println( actor.act());
                break;
            case 4:
                System.out.println( "================");
                actor = new Parrot("Rose",1,"牡丹鹦鹉");
                System.out.println( actor.act());
                break;
            case 5:
                System.out.println( "================");
                actor = new Clown("Kahle",5);
                System.out.println( actor.act());
                break;
            default:
                System.out.println( "输入的数字不对,请重新输入");
                continue;   
            }
            while(true) {
            	 mu.select();
             
                try {
                    input = sc.nextInt();
                    if (input!=1 && input!=0 ) {
                        System.out.println( "输入的数字不对,请重新输入");
                        continue;
                    }else if(input==1) {
                        mu.info();
                        break;
                    }else {
                        System.out.println( "********谢谢观赏,欢迎下次再来!**********");
                        return;
                    }
                }catch(InputMismatchException e){
                    System.out.println( "输入的不是数字,请重新输入");
                    sc.next();
                    continue;
                }
            }
        }
	}
}

我替你改的主方法,你看行不行?

如果解决了你的问题,望采纳,你的采纳是对我最大的鼓励

慕桂英爱吃大米 2019-07-31 16:41:38

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

这不是挺好的吗?有什么问题吗?

提问者 Adam静之 2019-07-31 15:19:47

http://img1.sycdn.imooc.com//climg/5d414100000189c109490499.jpg问题代码如图所示~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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