Java:Do-while 循环,偶数然后重试
Java:Do-while Loop, Even number then trying again
我可以简单地循环,但是我很难只做偶数和奇数。例如,我希望它像这样:
输入您的电话号码:20
2 4 6 8 10 12 14 16 18 20
你想再做一次吗? Yes/No?
我的代码:
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String c = null;
do {
int i;
System.out.println("Enter a Number:");
int n = input.nextInt();
for(i=1; i<n; i++) {
System.out.println(i);
if(n%2==0) {
System.out.println(i + " " );
}
System.out.println("Try Again? Y/N");
c = input.next();
}
}while(c.equalsIgnoreCase("y"));
}
您的代码说 if (n%2 == 0)
但循环遍历 i
。这个n
在每次循环中永远不会改变。
这可能不是您代码中的唯一问题,但您当然应该查看 i
在循环中执行的操作,而不是该行中的 n
。
您需要检查 i % 2 == 0
而不是 n % 2 == 0
。
演示:
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String c = null;
do {
System.out.print("Enter a Number: ");
int n = input.nextInt();
for (int i = 1; i <= n; i++) {
if (i % 2 == 0) {
System.out.print(i + " ");
}
}
System.out.print("\nTry Again? Y/N: ");
c = input.next();
} while (c.equalsIgnoreCase("y"));
}
}
样本运行:
Enter a Number: 20
2 4 6 8 10 12 14 16 18 20
Try Again? Y/N: y
Enter a Number: 25
2 4 6 8 10 12 14 16 18 20 22 24
Try Again? Y/N: n
我可以简单地循环,但是我很难只做偶数和奇数。例如,我希望它像这样:
输入您的电话号码:20
2 4 6 8 10 12 14 16 18 20
你想再做一次吗? Yes/No?
我的代码:
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String c = null;
do {
int i;
System.out.println("Enter a Number:");
int n = input.nextInt();
for(i=1; i<n; i++) {
System.out.println(i);
if(n%2==0) {
System.out.println(i + " " );
}
System.out.println("Try Again? Y/N");
c = input.next();
}
}while(c.equalsIgnoreCase("y"));
}
您的代码说 if (n%2 == 0)
但循环遍历 i
。这个n
在每次循环中永远不会改变。
这可能不是您代码中的唯一问题,但您当然应该查看 i
在循环中执行的操作,而不是该行中的 n
。
您需要检查 i % 2 == 0
而不是 n % 2 == 0
。
演示:
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String c = null;
do {
System.out.print("Enter a Number: ");
int n = input.nextInt();
for (int i = 1; i <= n; i++) {
if (i % 2 == 0) {
System.out.print(i + " ");
}
}
System.out.print("\nTry Again? Y/N: ");
c = input.next();
} while (c.equalsIgnoreCase("y"));
}
}
样本运行:
Enter a Number: 20
2 4 6 8 10 12 14 16 18 20
Try Again? Y/N: y
Enter a Number: 25
2 4 6 8 10 12 14 16 18 20 22 24
Try Again? Y/N: n