有人可以解释一下吗?

时间:2018-11-28 16:15:01

标签: java for-loop

我有三个Java代码,其中涉及使用for循环打印不同的数字集。它们起作用,但是,我实际上不知道它们为什么起作用。有人可以帮忙吗?

第一个(在Main1下面)打印从23到89的数字,每行10个数字,每个数字之间有一个空格。

import java.util.Scanner;
import java.lang.Math; 

class Main1 {
    public static void main(String[] args)
     {
  for (int i = 23; i < 90; ++i) {
            System.out.print(i);
            char c;
            if (i % 10 == 2) { c = '\n'; } 
            else { c = ' '; }
            System.out.print(c);
    }
  }
}

第二个(位于Main2下面)让用户输入一个介于0和100之间的整数,每行二十个数字。如果该数字不在零和一百之间,则会显示“错误”。

import java.util.Scanner;
import java.lang.Math; 

class Main2 {
    public static void main(String[] args)
     {
 Scanner scan = new Scanner(System.in);
  System.out.println("Enter a number between 0 and 100:");
  int x = scan.nextInt();
  if(x > 0 || x < 100){
  for(int a = x; a < 101; a++){
    System.out.println(a);
  }
 }
 if(x < 0 || x > 100)System.out.println("error");
}

}

第三个数字(也是下面的Main3类)仅打印从1到50的偶数,每行打印一个。

import java.util.Scanner;
import java.lang.Math; 

class Main3 {
    public static void main(String[] args)
     {
    for(int i = 2; i <= 50; i++)
    {
    if (i%2 == 0)
      System.out.println(i);

    }
    }
}

所有这些工作都应该按照预期进行,但我不确定如何。谢谢!

1 个答案:

答案 0 :(得分:1)

在您的第一个Java代码中,

这将打印数字23到33

   for (int i = 23; i < 90; ++i) {
                System.out.print(i);

直到您有条件

if (i % 10 == 2) { 
c = '\n'; 
} 
else { 
c = ' ';
 }
System.out.print(c);

如果i被10整除并且余数为2,则c的值为\ n 其他 c将具有“”的值。

在第二个代码中,

您将输入1到100之间的数字,然后输入代码

if(x > 0 || x < 100)

将检查数字是否在0到100之间,如果条件为真,则会循环执行

for(int a = x; a < 101; a++){
    System.out.println(a);
  }

此循环将从您输入的数字开始打印,直到100。 然后这段代码,

if(x < 0 || x > 100)System.out.println("error");

将检查您输入的数字是否为0以下,100以上;

您的第三个代码,这是for循环

for(int i = 2; i <= 50; i++)

将从2循环到50

但您的条件是

if (i%2 == 0)
      System.out.println(i);

    }

这意味着i可以被二整除,它将打印i。

希望您能理解我的所有解释。