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

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

 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"));

    }

}

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);

  }
        这样吗?

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

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

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

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

 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.2.3.4等是吧,只要把
Scanner sc = new Scanner(System.in);
st = sc.next();//从键盘输入数字
放到小丑那一行的下面就可以了

或许吧
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("表演结束");
    }           
}

}