【问题标题】:Java, switch case and arrayJava,开关盒和数组
【发布时间】:2020-03-30 14:26:26
【问题描述】:

如果我使用的是开关盒,我可以设定一个条件,即你必须先做第一种情况,然后你可以做第二种情况吗?如果在第一种情况下有数组,我可以在第二种情况下使用它吗?

switch (input) {
        case 1:
            System.out.print("How many data you want :");
            int num = in.nextInt();
            int data[] = new int[num];
            for (int i = 0; i < data.length; i++) {
                System.out.print("Input data-"+(i+1)+":");
                data[i]=in.nextInt();
            }
            break;

我想做第二种情况,我可以打印我在第一种情况下输入的数据

【问题讨论】:

  • 删除break;,代码将“直通”到下一个case
  • 为了能够使用在第一种情况下声明的数组,您需要在整个 switch 语句之外定义它。
  • 如果我在开关盒之外声明了数组,我也应该声明数组长度吗?我如何制作一个长度由用户手动输入的数组

标签: java arrays switch-statement case


【解决方案1】:

data 设为类的实例变量。并通过整个开关盒访问

int[] data = null;
switch (input) {
        case 1:
            System.out.print("How many data you want :");
            int num = in.nextInt();
            data = new int[num];
            for (int i = 0; i < data.length; i++) {
                System.out.print("Input data-"+(i+1)+":");
                data[i]=in.nextInt();
            }
            break;

        case 2:
            System.out.println(Arrays.toString(data));
            break;
}

【讨论】:

  • 我也应该输入数组长度吗?
  • 可以在case里面创建object,所以只需要在switch外面声明instance name就够了;上面的代码应该可以工作,试试看,如果你有任何问题,请告诉我
  • 我在尝试使用机箱内的数组时遇到问题,找不到符号?
  • data[]= new int[num] 上仍然有错误; ,不是语句错误?
  • 真的吗?我尝试了上面的代码,它对我来说很好,你确定你使用的是上面更新的代码吗?
猜你喜欢
  • 2022-01-10
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-02
相关资源
最近更新 更多