sinat_33415638 2016-01-28 07:47 采纳率: 100%
浏览 1537
已采纳

小白求助,为什么这段代码的case“2”未执行

int j = 1;
int i = Integer.parseInt(source.getProperty("表单数据从第几行开始")) - 1;
int lastnum = getNum(source.getProperty("fileName"));
for (int k = 0; k < conditions.length; k++) {
System.out.println(conditions[k]);
switch (conditions[k]) {
case "1":
for (; i < lastnum; i++) {
XSSFRow readrow = readsheet.getRow(i);// 获取输入行
Process p = new ProcessRow();
if (p.panduan1(readrow)) {
System.out.println("get1");
XSSFSheet sheet = sc.getSheetAt(0);
XSSFRow outputrow = sheet.createRow(j++);
p.process1(readrow, outputrow);
p.process2(readrow, outputrow);
p.process3(readrow, outputrow);
p.process4(readrow, outputrow);
}
}
case "2":
for (; i < lastnum; i++) {
XSSFRow readrow = readsheet.getRow(i);// 获取输入行
Process p = new ProcessRow();
System.out.println("get");
if (p.panduan2(readrow)) {
System.out.println("get2");
XSSFSheet sheet = sc.getSheetAt(0);
XSSFRow outputrow = sheet.createRow(j++);
p.process2(readrow, outputrow);
}
}
default:
break;
}

        输出结果
        1

get1
get1
2
3
4
输入完毕

为什么case 2没执行

  • 写回答

7条回答

  • galiniur0u 2016-01-28 07:58
    关注

    i值没有还原,导致执行完case 1时i > lastnum,当执行到case 2的时候i依旧大于lastnum,for循环直接跳出,因此为执行。
    你的程序怎么case之后不跟break?case之后不跟break就会导致进入switch之后所有的case均执行一遍。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误