如何解决Java,无限循环-仅2的倍数
我被要求仅以永无止境的循环打印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的余数设置为零。我尝试使用计数器,但不会增加它。保持打印零。我需要一些帮助。谢谢。
解决方法
假设您要提示用户输入起始号码,然后打印以下所有偶数:
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.\");
}
,我对此编译感到惊讶。
x= (++number)
末尾没有分号。
同样,将if语句移到while里面。如果要检查2的倍数,则每次循环后都需要检查
编辑:您更改了原始代码。请从您的来源复制/粘贴,而不要重新键入。
,问题不是很清楚,但可能会帮助您:
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);
,无限循环不需要计数器。可以这样写:
if((number % 2) != 0) {
number++;
}
while(true) {
System.out.println(number);
number = number + 2;
}
编辑:添加无限查找2的倍数
,我猜这是一个家庭作业问题,因此也许解释方法会比完全答案有所帮助。
首先,您可以使用while
循环来确保代码多次执行:
while循环
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
}
,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);
}}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。