输入数字n,然后打印1到n之间的所有偶数平方

时间:2019-04-11 22:02:02

标签: java for-loop

我需要帮助弄清楚如何输出1到N之间的偶数(n是用户输入的数字)。

这是我到目前为止所拥有的。

import java.util.*;

public class HelloWorld{

     public static void main(String []args){
         int n;
         int i = 0;

        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a Number");
        n = scan.nextInt();

        for(i=1; i<n; i++){
            if(i%2==0)
            i = i*i;
            System.out.println(i);
        }    
    }
}

现在打印出错误的输出。我想知道它如何从4变为16到36。

样本输入:45

预期输出:

4
16
36

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您已经在for定义中增加了变量i,不需要在for块中再次增加。还要从2开始,然后在每个步骤上加2,以实现更有效的实施。

for(i=2; i*i<n; i+=2){
        System.out.println(i*i);
    }    

答案 1 :(得分:1)

首先,不要在for循环中更改i的值。无需将i更改为等于i*i,只需使用语句i*i打印System.out.println(i*i)即可; 其次,您还忘记了if语句后的花括号。