如果a> m连续三次,我希望打印1。我试过通过for循环运行它。
for(int i = 0; i<message.length; i+=3){
if(a>m){
System.out.println("1");
}
}
我希望程序在第一次触及&gt; m连续三次时停止正确。
答案 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;
}
只是想知道a
和m
如何被修改,他们必须在该循环中进行修改,否则这段代码没有任何意义
答案 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");
}
这取决于你必须满足的要求。