关于7-2作业题

关于7-2作业题

在提示是否观看表演,1和0表示继续和退出,老师能否有个具体实现的代码,这个我一直没有想通是如何编写的

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

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

2回答
好帮手慕小琪 2020-05-07 10:18:01

同学你好,

  1. 这里的这里的n=-1是不是就是初始化,等于多少都是无所谓的
    这个同学理解的是对的,这里只是做了一个初始化。

  2. 第一个的do while 条件 为什么是n!=0;

    do while语句执行的顺序是无论是否符合条件都会先执行一次do中的代码,再判断是否满足while中的条件。由代码可知,点击run执行代码后,直接进入最外层do循环中的语句,逐条执行语句,当执行到第二个do循环,会提示“是否继续观看(1/0)”,如果从键盘输入0,因为不满足n != 1 && n != 0的条件,所以会跳出内部的do while循环,接着判断外层的while条件,因为输入的是0,不满足n != 0的条件,也会跳出循环。所以第一个的do while 条件是n!=0的原因是控制程序退出的语句。

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

苍星乱舞 2020-04-02 22:30:55

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

import pers.stephen.members.*;

public class Manage {

	public static void main(String[] args) {
		IAct actor = null;
		Scanner s = new Scanner(System.in);
		int n = -1;// 控制是否继续观看
		int input = 0;// 选择表演者
		do {
			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丶小丑    **********");
			try {
				input = s.nextInt();
			} catch (InputMismatchException e) {
				// 输入非数字提示用户
				System.out.println("** 输入非数字,请重新输入 **");
				s.next();
				continue;
			}
			// 输入不存在表演者提示用户
			if (input < 1 || input > 5) {
				System.out.println("** 输入演员不存在,请重新输入 **");
				continue;
			}
			// 对相应的表演者进行演示
			switch (input) {
			case 1:
				actor = new Bear("Bill", 1);
				break;
			case 2:
				actor = new Lion("Lain", 2, "灰色", "公狮");
				break;
			case 3:
				actor = new Monkey("Tom", 1, "金丝猴");
				break;
			case 4:
				actor = new Parrot("Rose", 1, "牡丹鹦鹉");
				break;
			case 5:
				actor = new Clown("Kahle", 5);
				break;
			}
			if (actor != null) {
				actor.act();
			}
			do {
				System.out.println("******  是否继续观看(1/0)  ******");
				try {
					n = s.nextInt();
				} catch (InputMismatchException e) {
					// 输入非数字提示用户
					System.out.println("** 输入非数字,请重新输入 **");
					s.next();
					continue;
				}
				// 如果输入的非0或1提示用户
				if (n != 1 && n != 0) {
					System.out.println("** 输入信息不正确,请重新输入 **");
				}
			} while (n != 1 && n != 0);
		} while (n != 0);
	}

}


  • 这里的n=-1是不是就是初始化,等于多少都是无所谓的
    2020-05-06 20:57:52
  • 还有一个就是 第一个的do while 条件 为什么是n!=0; 就这2个v的地方不太清楚
    2020-05-06 21:02:20
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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