关于是否继续观看

关于是否继续观看

我的代码运行到是否继续观看提示选择1正常弹出视频中的提示,但是选择0或者其他数字都会在原有提示的基础上再加上一段“

**********欢迎来到太阳马戏团************

*********  请选择表演者     ***********

**********  1、棕熊     ************

**********  2、狮子     ************

**********  3、猴子     ************

**********  4、鹦鹉     ************

**********  5、小丑     ************



代码如下:

package com.imooc.test;


import java.util.Scanner;


import com.imooc.animal.Bear;

import com.imooc.animal.Lion;

import com.imooc.animal.Monkey;

import com.imooc.animal.Parrot;

import com.imooc.human.Clown;


public class Test {

//创建各个类的实例

Bear bear = new Bear("Bill", 1);

Lion lion = new Lion("Lain", 2, "灰色", "公狮");

Monkey monkey = new Monkey("Tom", 1, "金丝猴");

Parrot parrot = new Parrot("Rose", 1, "牡丹鹦鹉");

Clown clown = new Clown("Kahle", 5);

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、小丑     ************");

}

public void toBeContinue(){

System.out.println();

System.out.println("********** 是否继续观看(1/0) ***********");

Scanner sc1 = new Scanner(System.in);

int n = sc1.nextInt();

switch(n){

case 1:

break;

case 0:

System.out.println("*******  欢迎下次光临      *******");

break;

default:

System.out.println("**   输入信息不正确,请重新输入     **");

break;

}

}


public static void main(String[] args) {

boolean flag = true;

Test test = new Test();

int[] a = new int[5];

//循环输出数组的提示信息

while(flag){

//循环调用提示

test.notice();

Scanner sc = new Scanner(System.in);

int m = sc.nextInt();

switch(m){

case 1: 

//执行bear的表演act()方法

test.bear.act();

test.toBeContinue();

break;

case 2:

//执行lion的表演act()方法

test.lion.act();

test.toBeContinue();

break;

case 3:

//执行monkey的表演act()方法

test.monkey.act();

test.toBeContinue();

break;

case 4:

//执行parrot的表演act()方法

test.parrot.act();

test.toBeContinue();

break;

case 5:

//执行clown的表演act()方法

test.clown.act();

test.toBeContinue();

break;

default:

//退出程序

flag = false;

System.out.println("输入不正确退出程序");

break;

}

}


}


}


正在回答 回答被采纳积分+1

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

2回答
好帮手慕珊 2017-10-30 09:57:53

因为你的是否观看的方法中是需要有循环的,在sc1的定义下面,定义一个boolean类型的变量flag默认值为true,将从键盘接收数据的语句和switch结构写到while(flag)的循环中,case 1后面写上flag=false;default后面写上flag=true。case 0后面写上System.exit(0)可以直接退出程序。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕粉3838620 #1
    default 后面写flag=true 那while循环会一直继续,就会继续输出“输入信息不正确,请重新输入”
    2017-10-30 15:49:40
  • 好帮手慕珊 回复 提问者 慕粉3838620 #2
    是的,输入信息错误了,肯定要重新输入,一直到输入正确为止
    2017-10-30 17:14:45
qq_左撇子A_0 2017-10-29 18:42:05

因为你在main方法里的循环内调用了notice方法,你把notice方法放在while循环外面试试

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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