我们可以在switch语句中使用for循环吗?

时间:2019-01-24 07:57:37

标签: java for-loop switch-statement

我正在尝试使用switch语句迭代循环。我想从该switch语句中打印特定数据。

我正在一个数组中获取数据,例如5,6,并且通过switch语句使用此数组长度迭代循环。它只能从switch语句打印第5和第6个值。但这不起作用。

它在下面输出::::

字符串值的并置 列印11 字符串值的并置 打印1

public class String_Concat {

public void concat(int n){
    System.out.println("Concatination of String value");

     switch (n)
        {
            case 1 : 
                System.out.println("Print 1");
                break;
            case 2 : 
                System.out.println("Print 2");
                break;
            case 3 : 
                System.out.println("Print 3");
                break;
            case 4 : 
                System.out.println("Print 4");
                break;
            case 5 : 
                System.out.println("Print 5");
                break;
            case 6 : 
                System.out.println("Print 6");
                break;
            case 7 :
                System.out.println("Print 7");
                break;
            case 8 :
                System.out.println("Print 8");
                break;
            case 9 : 
                System.out.println("Print 9");
                break;
            case 10 : 
                System.out.println("Print 10");
                break;

            default :
                System.out.println("Print 11");

        }
}

public static void main(String[] rags){
    String[] nums={"5","6"};
    String_Concat st=new String_Concat();
    for(int i=0;i<nums.length;i++){
        st.concat(i);
    }
}
}

3 个答案:

答案 0 :(得分:1)

哪里有错

您的问题在下面:

make_chunks(your_audio_file_object, chunk_length_ms)

您要传入计数器作为参数,即for(int i=0;i<nums.length;i++){ st.concat(i); } ,然后将其放入switch语句的st.concat(0)选项中,并打印出default:的值。在第二个迭代中,您传入11,它会打印出st.concat(1)的值。

如何修复

您应该改而传入1,它会在第一次迭代中返回nums[i]

此外,由于您的5方法接受concat,因此您需要进行快速转换: int

为简化起见,只需声明st.concat(Integer.parseInt(nums[i]));并将其填充为nums的数组即可:

int

答案 1 :(得分:1)

您应该像这样更改循环:

for(int i=0;i<nums.length;i++){
            st.concat(Integer.valueOf(nums[i]));
        }

在您的代码中,您将此称为:

st.concat(0);
st.concat(1);

所以输出正确。

答案 2 :(得分:0)

让我们首先了解一下这段代码中发生了什么。在第一次迭代中, i 的值是0,将其用于concat方法,并尝试与切换条件匹配,但没有找到(因为情况从1到9),因此(默认情况下),因此打印打印11 。在第二次迭代之后, i 的值变为1,并再次使用concat方法,在该方法中,它找到与情况1完全匹配的内容,并打印 print 1 。 >

现在要从此代码中获得期望的结果,您需要在 for循环的每次迭代中传递数组元素的值。另外,您还需要按照方法的预期 int 数据类型将nums的值从字符串转换为整数。

  

st.concat(Integer.parseInt(nums [i]))