Java,无限循环 - 仅为2的倍数

时间:2011-05-25 14:35:34

标签: java if-statement while-loop

我被要求只用永无止境的循环打印2的倍数。

尝试:

import java.util.Scanner;

public class Infiniteloop {

    public static void main (String [] args) 
    {
        Scanner input=new Scanner (System.in);
        int number,x;
        System.out.print("Enter a number");

        number=input.nextInt();
        if(number%2==0)
        {
            while(number>=0)
            {
                x= (++number);
                System.out.println(x);
            }
        }
    }
}

我只能使用while循环。所以我试着设置2的余数等于零。我尝试使用计数器,但它不会增加它。保持打印出零。我需要一些帮助。感谢。

6 个答案:

答案 0 :(得分:5)

假设您要提示用户输入起始编号,然后打印以下所有偶数:

number = input.nextInt(); //read the input
number += number % 2; //if input is odd, add 1
while (true)
{
   System.out.println (number);
   number += 2;
}

假设您要检查偶数:

while (true)
{
  number = input.nextInt();
  if (number % 2 == 0) System.out.println (number);
}

或者,如果你不关心空行:

while (true) System.out.println (input.nextInt () % 2 == 0 ? "even" : "");
编辑:对于两个人来说同样的事情:

public static void main (String [] args)
{
    Scanner input = new Scanner (System.in);
    int number;
    while (true)
    {
        System.out.print ("Enter a number");
        number = input.nextInt ();
        while ( (number & 1) == 0) number >>= 1;
        if (number == 1) System.out.println ("Perfect divisor.");
    }

答案 1 :(得分:0)

无限循环不需要计数器。它可以这样写:

if((number % 2) != 0) {
    number++;
}

while(true) {
    System.out.println(number);
    number = number + 2;
}

编辑:无限制地找到2的倍数

答案 2 :(得分:0)

我很惊讶这个编译。

x= (++number)

最后没有分号。

同样,在while内移动if语句。如果要检查2的倍数,则需要在循环的每次迭代后进行检查

编辑:您更改了原始代码。请从您的来源复制/粘贴,而不是重新输入。

答案 3 :(得分:0)

问题不是很明确,但可能会对此有所帮助:

Scanner input=new Scanner (System.in);
int number;
do {
    System.out.print("Enter a number: ");
    number=input.nextInt();
    if(number%2==0)
       System.out.println(number);
} while (number > 0);

答案 4 :(得分:0)

我猜这是一个家庭作业问题,所以解释这种方法可能会对你有所帮助。

首先,您可以使用while循环来确保您的代码多次执行:

while loop

while循环将继续执行中的代码,而给定的布尔条件的计算结果为true 。因此,您可以使用以下代码完成代码。

while(true) {
//...
}

括号之间的任何内容将永远执行(逐行)。

如果你在循环开始时从用户那里得到一个数字,那么循环将停止执行任何进一步的代码,直到用户输入某些内容(它将被阻止,等待IO)。

获得数字后,循环将开始执行其余代码,然后返回循环顶部并重复该过程。

while (true) {
//ask user for number

//print out the number

// check that it is even

// print whether it is even or odd
}

答案 5 :(得分:-1)

class Fordemo
{


public static void main(String args[])
{

int k,x=0;

for(k=1;k<=10;k++)
{

x=k*2;

System.out.println("multiple of 2 is "+x);

}}}