CarrotChair
CarrotChair
采纳率100%
2017-07-20 08:26

Java初级小问题 根据输入的条件来控制循环

20
已采纳

根据输入的条件来控制循环,但程序的运行结果和预期不符
图片说明

 package polymorphismHomework;

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        System.out.println("************欢迎来到太阳马戏团***********");
        String st = " ";
        do{
            Scanner sc = new Scanner(System.in);
            st = sc.next();//从键盘输入数字
            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、小丑        ************");
        }while(!st.equals("Y"));

    }

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

8条回答

  • MathRandom MathRandom 4年前
    public static void main(String[] args) {
          System.out.println("************欢迎来到太阳马戏团***********");
          System.out.println("************ 请选择表演者( 1、棕熊,2、狮子,3、猴子,4、鹦鹉,5、小丑)************");
          int st = 0;
          do{
              Scanner sc = new Scanner(System.in);
              st = sc.nextInt();//从键盘输入数字
              switch(st){
              case 1:
                  System.out.println("************     1、棕熊         ************");
                  break;
              case 2:
                  System.out.println("************     2、狮子         ************");
                  break;
              case 3:
                  System.out.println("************     3、猴子         ************");
                  break;
              case 4:
                  System.out.println("************      4、鹦鹉        ************");
                  break;
              case 5:
                  System.out.println("************      5、小丑        ************"); 
                  break;
                  default:
                System.out.println("没有这个");
              }
          }while(st!=0);
    
      }
            这样吗?
    
    点赞 1 评论 复制链接分享
  • niufeiyun jCodeYun 4年前

    执行到这句,“st = sc.next();”在等待你输入,你输入之后后面的代码才会执行

    点赞 2 评论 复制链接分享
  • qq_39237801 3y先生 4年前

    或许吧
    import java.util.Scanner;

    public class MyTest {
    @SuppressWarnings("resource")
    public static void main(String[] args) {

        System.out.println("************欢迎来到太阳马戏团***********");
        boolean flag = true;
        do{                       
            System.out.println("************     请选择表演者************");
            System.out.println("************     1、棕熊         ************");
            System.out.println("************     2、狮子         ************");
            System.out.println("************     3、猴子         ************");
            System.out.println("************     4、鹦鹉        ************");
            System.out.println("************     5、小丑        ************");
            Scanner sc = new Scanner(System.in);
            int st = sc.nextInt();
            if(st <1 || st > 5){
                flag = false;
            }
            showTime(st);
    
        }while(flag);
    
    }
    
    public static void showTime(int i){
        try{
            switch(i){
            case 1: System.out.println("棕熊 表演时间!"); break;
            case 2: System.out.println("狮子 表演时间!"); break;
            case 3: System.out.println("猴子 表演时间!"); break;
            case 4: System.out.println("鹦鹉 表演时间!"); break;
            case 5: System.out.println("小丑 表演时间!"); break;
            default: System.out.println("表演结束");break;
        }
        }catch(Exception e){
            System.out.println("表演结束");
        }           
    }
    

    }

    点赞 1 评论 复制链接分享
  • xwgj2012 xwgj2012 4年前

    懂你的意思了,你就是想循环输入1.2.3.4等是吧,只要把
    Scanner sc = new Scanner(System.in);
    st = sc.next();//从键盘输入数字
    放到小丑那一行的下面就可以了

    点赞 1 评论 复制链接分享
  • beyondlfover beyondSelf 4年前
     public static void main(String[] args) {
            // TODO 自动生成的方法存根
            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、小丑        ************");
            String st = "";
            Scanner sc = new Scanner(System.in);
            do {
                st = sc.next();// 从键盘输入数字
                if (st.equals("1")) {
                    System.out.println("hoho,我是棕熊");
                } else if(st.equals("2")) {
                    System.out.println("hoho,我是狮子");
                } else if(st.equals("3")) {
                    System.out.println("hoho,我是猴子");
                } else if(st.equals("4")) {
                    System.out.println("hoho,我是鹦鹉");
                }else if(st.equals("5")) {
                    System.out.println("hoho,我是小丑");
                } else {
                    System.out.println("不想选输入Y");
                }
            } while (!st.equals("Y"));
    
        }
    

    不知道是不是这个意图

    点赞 1 评论 复制链接分享
  • weixin_38709807 Re-creater 4年前

    你是要达到什么效果啊 没明白

    点赞 1 评论 复制链接分享
  • tianyaleixiaowu 天涯泪小武 4年前

    想要什么效果。你写的肯定是不对,但对的是什么样,你也没描述

    点赞 1 评论 复制链接分享
  • qq_15539917 LX-87120263 4年前

    还不如用switch或者ifelse嵌套着写呢

    点赞 评论 复制链接分享