【问题标题】:Execute an if statement inside a for loop only once在 for 循环中只执行一次 if 语句
【发布时间】:2024-08-10 14:55:02
【问题描述】:

我想用 if 语句和 for 循环检查表中的每个条目,如果为真,则只执行一次。例如:

int[][] table = new int[5][5]
int number = 4;

for(int i=0;i<table.length;i++)
   { 
     if(table[i][0] != number)
     {
       do something;
     }
   }

因此,如果条目等于数字,它会检查第一列,如果不等于,则执行“做某事”。但是我只想在整个列不等于一次而不是每个条目时执行“做某事”。

【问题讨论】:

    标签: java loops if-statement


    【解决方案1】:

    通过使用一个总是增加的计数器解决了这个问题

    if(table[i][0] != number)
    

    为真,如果计数器等于 0,我执行“做某事”。

    【讨论】:

      【解决方案2】:

      你可以简单地打破一个循环。

      loop_name: for(int i=0;i<table.length;i++) { 
           if(table[i][0] != number)
           {
             do something;
             break loop_name;
           }
         }
      

      在第一次条件为真后,“做某事”并打破循环;

      【讨论】:

      • “中断循环名称;”非常先进,即在大多数代码中非常罕见。要退出当前循环,只需简单的“break;”够了。
      【解决方案3】:

      试试这个

          int[][] table = new int[5][5]
          int number = 4;
          // use this flag to signal the condition violation
          boolean flag = false;
          
          for(int i=0;i<table.length;i++)
             { 
               if(table[i][0] == number)
               {
                 flag == true;
                 break;
               }
             }
           if(!flag) doSomething();
      

      【讨论】:

      • 该标志对于很多此类问题来说是一个很好的解决方案。
      【解决方案4】:

      你也可以试试

      do {do_stuff; table[i][0] = number;} while (table[i][0] != number);
      

      【讨论】:

        最近更新 更多