我正在尝试使用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);
}
}
}
答案 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]))