如何连续3次运行if语句?

时间:2015-05-27 03:55:24

标签: java

如果a> m连续三次,我希望打印1。我试过通过for循环运行它。

for(int i = 0; i<message.length; i+=3){
  if(a>m){
    System.out.println("1");
  }
}

我希望程序在第一次触及&gt; m连续三次时停止正确。

9 个答案:

答案 0 :(得分:3)

添加连续命中的计数器,该计数器最初设置为零。每次受到打击时都会增加它。一旦计数器达到三,就打破循环。否则,继续循环:

int consecutiveHits = 0;
for (...) {
    if (a > m) {
        ...
        consecutiveHits++;
        if (consecutiveHits == 3) {
            break;
        }
    } else {
        consecutiveHits = 0;
    }
}

答案 1 :(得分:0)

如果你只想要&#39; 1&#39;你似乎不正确地使用了for语法。打印三次。您可能希望它为i+=3而不是递增语句i++。对于比较,您需要i<3,而不是i<message.length。所以这可能是你想要的:

for(int i = 0; i<3; i++){ //go through the loop three times. Print 1 in the loop only if a>m.
    if(a>m){
        System.out.println("1");
    }
}

请参阅for loop here上的语法。

每次循环执行第三个语句,因此i初始化为0,语句i+=3结束,第一次循环i将为0,下次为3,然后为6,然后为9等,直到您的情况变为假(因为您已经写好了,它将一直持续到i>=message.length,所以如果message.length为3,那么在您编写代码时,您只能进行一次循环。

答案 2 :(得分:0)

这意味着您希望打破退出循环。有两种主要方法:

使用break关键字:

Java包括keyword for breaking out of loops以及keyword for skipping certain parts of loops.如果您想要在某个术语适用的情况下突破循环 - 您可以使用它 - break; - 它会停止当场循环。例如:

for(int i = 0; i<message.length; i+=3){
 if(a>m){
  System.out.println("1");
  break; // you go out of the loop-
  }
}
// and the code goes on from here.

使用标志:

您可以使用布尔值来跟踪每次在术语部分中循环的方式。这样,您可以跟踪它并在需要时退出循环。例如:

Boolean myFlag = true;
for(int i = 0; i<message.length && myFlag ; i+=3){ // notice how the term changed.
 if(a>m){
  System.out.println("1");
  myFlag = false; // The term will no longer fullfill and you will go out of the loop.
  }
}

答案 3 :(得分:0)

尝试像这样使用索引和while循环。每当if语句命中它由I计数时。当if语句命中3次时,循环停止......

int i = 0

while(i < 3){
if(a>m){
    System.out.println("1");
    i++;
}
}

答案 4 :(得分:0)

for(int i = 0; i < 3; i++){
      if(a > m){
         // 1 will be printed for 3 times and no more provided 'a > m'
         System.out.println("1");
      } else {
         break;
      }
}

答案 5 :(得分:0)

int count = 0;
for(int i = 0; i<message.length; i+=3) {
  if(a>m) {
    System.out.println("1");
    count++;
    if(count == 3)
      break;
  }
}

答案 6 :(得分:0)

试试这个 -

int count1 =0, count2=0, count3=0;

for(int i = 0; i<message.length; i+=3){
  if(a>m){
    System.out.println("1");

    if(count1==0){
       count1++;
       count2=0;
       count3=0;
    }

    else if(count1==1){
       count2++;
       count3=0;
    }

    else if(count1==1 && count2==1){
       count3++;
    } 

    else{
       count1=0;
       count2=0;
       count3=0;

    }





  }

 if(count1==1 && count2 ==1 && count3==1){
    break;
 }
}

答案 7 :(得分:0)

添加一个增量为a > m的计数器变量,否则重置

int ctr = 0;
for (int i = 0; i < message.length; i++) {
    ctr = a > m ? ctr + 1 : 0;
    if (ctr == 3) break;        
}

只是想知道am如何被修改,他们必须在该循环中进行修改,否则这段代码没有任何意义

答案 8 :(得分:-1)

还有一些选项不涉及循环。也许不那么漂亮,但如果你没有太多的循环经验,它们可能更容易理解。

if(a>m){
    System.out.println("111");
  }

if(a>m){
    System.out.println("1" + "\n" + "1" + "\n" + "1");
  }

 if(a>m){
    System.out.println("1");
    System.out.println("1");
    System.out.println("1");
  }

这取决于你必须满足的要求。