Java,无限循环-仅2的倍数
我被要求打印2的倍数,只有一个永无止境的循环 尝试:Java,无限循环-仅2的倍数,java,if-statement,while-loop,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");
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的余数设为0。我试着使用计数器,但它没有增加它。不断打印出零。我需要一些帮助。谢谢。无限循环不需要计数器。可以这样写:
if((number % 2) != 0) {
number++;
}
while(true) {
System.out.println(number);
number = number + 2;
}
编辑:无限添加查找2的倍数无限循环不需要计数器。可以这样写:
if((number % 2) != 0) {
number++;
}
while(true) {
System.out.println(number);
number = number + 2;
}
编辑:无限添加查找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);
}
假设您要检查偶数:
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.");
}
假设您希望提示用户输入起始编号,然后打印以下所有偶数:
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);
}
假设您要检查偶数:
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的倍数,那么您将希望在循环的每次迭代之后进行该检查
编辑:您更改了原始代码。请从您的源代码复制/粘贴,而不是重新键入。我很惊讶这会编译
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);
这个问题不是很清楚,但可能类似这样的问题会对您有所帮助:
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);
我猜这是一个家庭作业问题,所以也许解释方法学会比完整的答案更有帮助 首先,您可以使用
while
循环来确保代码执行多次:
当给定的布尔条件计算为true时,while循环将继续执行其中的代码。因此,您可以使用以下内容来总结代码:
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
}
我猜这是一个家庭作业问题,所以也许解释方法学会比完整的答案更有帮助 首先,您可以使用
while
循环来确保代码执行多次:
当给定的布尔条件计算为true时,while循环将继续执行其中的代码。因此,您可以使用以下内容来总结代码:
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
{
公共静态void main(字符串参数[])
{
int k,x=0;
对于(k=1;kclass-Fordemo
{
公共静态void main(字符串参数[])
{
int k,x=0;
对于(k=1;k你能澄清一下代码应该做什么吗?@Alan,很清楚。但他/她已经尝试过了。所以,我觉得可以帮上忙。它需要打印整数2的倍数,比如2,4,16,32。@zrn,我知道它打印的是2的倍数。但是如何让数字检查是否可以被除数2?用户是否输入每个数字?或者用户是否输入一个起始数字,然后您在上面每隔两倍打印一次?@zrn您在注释中提供的整数序列(2,4,16,32)似乎表明你需要输出2的幂而不是倍数。这是正确的假设吗?你能澄清一下代码应该做什么吗?@Alan,很明显。但他/她已经做了一次很好的尝试。所以,我觉得这可以帮上忙。它需要打印整数2的倍数,比如2,4,16,32。@zrn,我知道了at打印2的倍数。但是如何让数字检查2的可整除性?用户是否输入每个数字?还是用户输入一个起始数字,然后再打印上面的每两个倍数?@zrn您在评论中提供的整数序列(2,4,16,32)似乎表明你需要输出2的幂而不是倍数。这是正确的假设吗?这是我对他的代码的另一种解释。我不确定哪一种是正确的(我的还是你的)因此,我偷了你的,也粘贴在这里。只需使用系统切换number+=2
。out
,这样数字就不会在一开始跳2的倍数。你要找的是哪一个?实际上有个问题。代码只需要执行2的倍数,比如2,4,8,16。这些是偶数e的倍数tc.所以任何奇数倍数都需要丢弃,例如2*3=6等。我尝试将if(数字%2==0)放在while(true)中,但它不起作用。这是我对他的代码的另一种解释。我不确定哪一个是正确的(我的还是你的)因此,我偷了你的,也把它贴在这里。只要用系统切换number+=2
,输出
,这样数字就不会在一开始跳2的倍数。你要找的是哪一个?实际上有个问题。代码是