这要跑多少圈java编码

gywdnpxw  于 2021-06-30  发布在  Java
关注(0)|答案(4)|浏览(270)

我得到了“10个坏循环”来解决。我需要对修改后的内容进行评论以使其正确。
我有

public class BrokenLoops {

  //loop 5 times
  public static void loop1() {
    for (int i = 1; i != 10 ; i += 2) { //final statement i += 2 means i+2
      System.out.println("In loop "+i);
    }
    System.out.println("Out of loop");
  }

我知道问题是什么,永远不会是10。1、3、7、9、11等等。
我不知道的是,如果我键入其中一个,将运行多少个循环=9点或更高=11
代码会像
如果代码有=11,它会像

i = 1 "in loop"
1 = 3 "in loop"
i = 5 "in loop"
i = 7 "in loop"
i = 9 "in loop"
i = 11 "out of loop"

所以,有6个循环?5个循环的正确答案是=9?
提前谢谢

bjp0bcyl

bjp0bcyl1#

有几种可能的方法来解决你的问题。
例1
如果您只需要进入循环5次,您可以简单地将代码更改为:

//loop 5 times
public static void loop1() {
  for (int i = 0; i < 5 ; i++) {
    System.out.println("In loop "+i);
  }
  System.out.println("Out of loop");
}

这将打印如下内容:
在循环0中
回路1中
回路2中
环路3中
环路4中
循环外
例2
另一个选择是将终止值更改为=11(不要忘了,如果你的增量变成i+=3,这又会变成一个无限循环):

public static void loop1() {
  for (int i = 1; i != 11 ; i += 2) { //final statement i += 2 means i+2
    System.out.println("In loop "+i);
  }
  System.out.println("Out of loop");
}

一旦i等于11,这将终止循环,因此输出为:
回路1中
环路3中
回路5中
回路7中
环路9中
循环外
例3
也可以将终止更改为i<10(或<=9或<=10或<11):

public static void loop1() {
  for (int i = 1; i < 10 ; i += 2) { //final statement i += 2 means i+2
    System.out.println("In loop "+i);
  }
  System.out.println("Out of loop");
}

输出将与示例2中的相同。
例4
您还可以在循环中添加一个检查,以便在某个值为true时停止循环:

public static void loop1() {
  int checkInt = 0;
  for (int i = 1; i != 10 ; i += 2) { //final statement i += 2 means i+2
    if (checkInt == 5) break;
    System.out.println("In loop "+i);
    checkInt++;
  }
  System.out.println("Out of loop");
}

所以当checkint等于5时(循环进行了5次),循环就停止了。输出与例2和例3相同

yhqotfr8

yhqotfr82#

您发布的循环将作为 i 永远不会得到10的值。
如果你提出终止条件 i != 9 然后循环运行4次。
如果你提出终止条件 i != 11 然后循环运行5次。
如果你提出终止条件 i <= 10 然后循环运行4次。
要使其运行10次,请将for循环更改为:

for (int i = 1; i <= 10; i++){
    //Your code
}

编辑:
代码:

for (int i = 1; i != 11; i += 2)
{
    Console.WriteLine("In loop {0}", i);
}
Console.WriteLine("Out loop");
Console.ReadLine();

输出:

dkqlctbz

dkqlctbz3#

如果密码有我=11,它会像
你只要用i<10就可以得到想要的结果

dluptydi

dluptydi4#

当i不等于10时,此循环有条件运行。因为我从1开始,每次迭代增加2,所以我总是奇数,因此可以等于10。所以循环的条件总是正确的。简单地说:你的循环将无限期地进行。

关于来自的语句

for语句提供了一种对一系列值进行迭代的紧凑方法。程序员经常把它称为“for循环”,因为它反复循环直到满足特定条件。for语句的一般形式可以表示为:

for (initialization; termination; increment) {
    statement(s)
}

初始化表达式初始化循环;循环开始时执行一次。
在每次迭代之前调用终止表达式。当它的计算结果为false时,循环终止。
在循环的每次迭代之后调用增量表达式;对于这个表达式来说,递增或递减一个值是完全可以接受的。
有关for语句的详细信息:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
//如果必须使用“!=”,请为5个循环编辑正确的代码比较如下:

for(int i = 1; i != 11; i += 2)
// i==1 PASS
// i==3 PASS
// i==5 PASS
// i==7 PASS
// i==9 PASS
// i==11 FAILED, Loop ends here

虽然用它更好

for(int i = 1; i < 10; i += 2)
//or
for(int i = 1; i < 11; i += 2)

这样,您的循环将在5次循环后结束,并且由于许多原因更加安全

相关问题