簡體   English   中英

奇/偶數程序不打印任何內容

[英]odd/even number program doesn't print anything

當我運行此命令時,什么都不會打印,我試圖打印一條消息,說的是奇數或偶數,具體取決於用戶的鍵入。

import java.util.Scanner;
public class Questions {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Your number");
        int number = input.nextInt();
        for (int i = 0; i > 0; i = +2) {
            if (number == i) {
                System.out.println("even");
            } else {
                System.out.println("odd");
            }
        }
    }
}

永遠不會進入循環,因為您將i初始化為0並且第一個測試是i > 0 (並且您不希望一 2 = +2 )。 我還將使用格式化的IO。 綜上所述,我認為您想要類似

int number = input.nextInt();
for (int i = 0; i < number; i++) {
    if ((i % 2) == 0) {
        System.out.printf("%d even%n", i);
    } else {
        System.out.printf("%d odd%n", i);
    }
}

如果您嘗試避免取模(並使用2加法),則可以使用以下方法進行優化

int number = input.nextInt();
for (int i = 0; i < number; i += 2) {
    System.out.printf("%d even%n", i);
    System.out.printf("%d odd%n", i + 1);
}

嘗試這個

import java.util.Scanner;
public class Questions {
public static void main (String[]args) {

Scanner input= new Scanner(System.in);
System.out.println("Your number");
int number = input.nextInt();
if(number % 2 == 0)
     System.out.println("even");
}else {
System.out.println("odd");
}
}

也許您想嘗試這種方式...

        if ((number % 2) ==0) {
            System.out.println("even");
        } else {
            System.out.println("odd");
        }

當您初始化i ,條件似乎是i>0因此它始終為false,因此for循環永遠不會執行

正如@MadProgrammer在評論中所述,您的循環從未執行。

因為i = 0,所以永遠不會執行循環;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM