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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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();
}
1
2
3
4
public abstract interface IAct {
    public abstract String skill();
    public abstract String act();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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;
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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;
         
         
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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;
         
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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;
         
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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;
         
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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、小丑      **********");
     
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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回答
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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