for (int i = 0; i < 3; i++) {
System.out.println(i);
for (int j = 0; j < 4; j++) {
if (j==0) {
System.out.println("第"+(j+1)+"个");
}else if(j==1){
System.out.println("第"+(j+1)+"个");
}else if(j==2){
System.out.println("第"+(j+1)+"个");
}else if(j==3){
System.out.println("第"+(j+1)+"个");
}
}
}

解决方案 »

  1.   

       for (int i = 0; i < 3; i++) {
                System.out.println(i);
                for (int j = 0; j < 4; j++) {
                    System.out.println("第"+(j+1)+"个"); //所有4个都是一样的?判断干嘛?
                }
            }
      

  2.   

    优化说不上,另一种写法。
    switch(j){case 0:break;
    case 1:break;
    case 2:break;
    case 3:break;
    case 4:break;}
      

  3.   

    这种情况下用switch比一长串的if/else好吧
      

  4.   

    有什么办法可以把两个for循环变成一个还打印ifelse里的值吗?
      

  5.   

    那你这代码写的就有问题。你这样写里面的for循环它怎么都得执行四次,你再里面写的if..else判断都会执行一遍,完全没必要。每次判断完之后,得到想要的结果要跳出循环。
      

  6.   

    这样打印是不是好一点?
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
               System.out.println("第"+(i+1)+"行的第"+(j+1)+"个"); //所有4个都是一样的?判断干嘛?
         }
    }
      

  7.   

    for (int i = 0; i < 3; i++) {
    System.out.println(i);
    for (int j = 0; j < 4; j++) {
    switch (i) {
    case 0:
    System.out.println("第" + (j + 1) + "个");
    break;
    case 1:
    System.out.println("第" + (j + 1) + "个");
    break;
    case 2:
    System.out.println("第" + (j + 1) + "个");
    break; } }
    }这一个是你的第一个问题,我觉得用switch  case比较好……
      

  8.   

    怎么可能把两个FOR变成一个,还打印 IF ELSE里面的值???有两个变量啊   我表示无能为力……
      

  9.   

    用switch case 这个是有局限性的,不过 比IF ELSE好用多了
      

  10.   


    没优化空间,为了代码美观,建议将if eles 提成单独一个方法
      

  11.   


    我搞不懂的是,楼上的那些所谓的优化都优化了些啥!连楼主实际的代码是什么都不知道,就用 switch...case 来弄,这个跟 if...else... 在我看来没有任何区别,反而使用代码更复杂化了!连问题都说不清楚,把与实际情况不一样的代码往这里一放就让人来优化了,对于这样的代码优化帖子,我们就不应该去回复!
      

  12.   


    哎还是火龙果看出了我的意思啊。
    我干嘛要在for循环里用ifelse呢。因为里面并不是只有一个打印而是还有逻辑判断在里面的,我只是没把代码贴出来而已。
      

  13.   


    for (int i = 1; i < list.size() + 1; i++) {
    Employees e = (Employees) list.get(i - 1);
    for (int j = 0; j < arr.length; j++) {
    // 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
    Label labelC = null;
    if (j == 0) {
    labelC = new Label(j, i, e.getTime());
    } else if (j == 1) {
    labelC = new Label(j, i, e.getPsname());
    } else if (j == 2) {
    labelC = new Label(j, i, e.getPscode());
    }
    ws.setColumnView(i, 30); // 设置列的宽度
    try {
    // 将生成的单元格添加到工作表中
    ws.addCell(labelC);
    } catch (RowsExceededException e1) {
    e1.printStackTrace();
    } catch (WriteException e1) {
    e1.printStackTrace();
    } }
    }这种代码能优化吗?
      

  14.   

    因为不知道你的array 和 list 里的数据的结构是怎么样的,所以没办法谈优化。
    不过,看了代码,那些Label/Employees 的变量声明,应该拿到循环外面去。
      

  15.   

    你第二个循环可以不加 ,根本不用判断 , 直接j = 0 ;  ;连在 labelC = new Label(j++, i, e.getTime());labelC = new Label(j++, i, e.getXXX);labelC = new Label(j++, i, e.getXXX);
      

  16.   

    插着加入 三个ws.addCell(labelC);
      

  17.   

    for (int i = 0; i < 3; i++) {
                System.out.println(i);
                for (int j = 0; j < 4; j++) {
                    System.out.println("第"+(j+1)+"个"); //所有4个都是一样的?判断干嘛?
                }
            }
      

  18.   


    for(int i=0,i<12,i++)
    {
      if(i%4==0)
      console.writeline((int)(i/4));  
      console.writeeline((int)(i%4)+1);
    }