检查输入的数字是否为奇数

Mik*_*ike 13 java java-io

`我不确定要插入什么代码甚至在哪里,但我想检查我输入的数字是一个奇数.

import java.io.*;
import javax.swing.JOptionPane;

public class Diamond {
    public static void main(String [] args) throws IOException {

        BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in));
        String input; 
        int num;
        System.out.println("input number: ");
        input = stdin.readLine ();
        num = Integer.parseInt(input);

        if (num % 2 ==1){
            int d = num;
            int e = 0;
            for (int a = 0; a <= num; a++) {
                for (int c = d; c>= 1; c-- )
                    System.out.print(" ");
                d-=1;
                for (int b = 1; b <= a; b++)
                    System.out.print ("* ");
                System.out.println();
            }

            num-=1;
            for (int a = 0; a<=num; a++) {
                for (int b = num; b > a; b--)
                    System.out.print (" *"); 
                System.out.println(); 
                for (int c = 0; c <= e; c++)
                    System.out.print(" ");
                 e+=1;
            }
        } else {
            System.out.println("Please enter an odd number!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

mik*_*iku 52

使用模运算:

if (number % 2 == 0) {
  // even
} else {
  // odd
}
Run Code Online (Sandbox Code Playgroud)

更新:

您可以在此处测试此代码:

请注意检查均匀性number % 2 == 1将失败.

要检查数字是否为奇数,您可以使用(number & 1) != 0.


小智 10

num%2 == 1在负奇数上返回不正确的结果,2的除数余数不为1.这可以修复如下:

public boolean isOddNumber(int num) {
    return (num & 1) != 0;
}
Run Code Online (Sandbox Code Playgroud)


dan*_*uch 6

你不能拥有readLineif.首先,你需要获得价值,然后你可以使用你的if.

它是这样的:

BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in));

String input; 
int num;

System.out.println("input number: ");

  input = stdin.readLine();
  num = Integer.parseInt(input);

if (num % 2 == 1) {
// odd
} else {
  System.out.println("Please enter an odd number!");
}
Run Code Online (Sandbox Code Playgroud)

最后 - 不要使用名为"a","e"或"d"的值 - 这非常令人困惑.只需用名称命名变量,让读者知道/猜测他们在您的代码中的角色.我不知道你的"a"或b,c,d等的含义是什么.例如,你num应该被命名enteredValue以澄清你的代码.

  • 使用完整的单词(例如"你"代替"你","你的"而不是"你的")使你的答案更容易阅读和理解.由于内容的大小没有限制,因此没有理由不花时间拼出来并使您的答案清晰易读.它还可以帮助其他人更认真地对待您的答案,因此,当有人试图提供帮助时,它会满足您的兴趣. (4认同)
  • 请不要在答案和评论中使用文字说话.这是*专业和爱好者程序员*的网站,因此在问题和答案中至少需要一定程度的专业性. (2认同)