繁体   English   中英

Java中的3和5的倍数,5的倍数和3的倍数

[英]Multiples of 3 and 5, multiples of 5 and multiples of 3 in Java

我有一份学校作业,上面写着:

给定一个整数,打印出整数,但对于 3 的倍数,打印“Computer”而不是整数,而对于 5 的倍数,则打印“Science”。 对于 3 和 5 的倍数的整数,打印“CS”。 对于给定的示例,创建一个名为 NumberPrinter 的类。 创建一个方法,为给定的整数打印出示例说明的内容。 在 main 方法中提示用户输入整数,并将该整数存储在一个类变量中。

注意:您可以使用带有 mod 的整数来检查数字是否为倍数

我们不需要循环。 如果用户输入数字,只输入 15 的倍数,它会显示“CS”,“计算机”显示 5 的倍数,“科学”显示 3 的倍数。我的代码编译,但我选择的每个数字都给出了 CS 的输出. 我已经被这两天难住了。 谁能帮我? 这是我的代码:

import java.util.Scanner; 

public class ComputerScience {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // Create instance of Scanner
        Scanner scanner = new Scanner(System.in);



        // Prompt user for a number
        System.out.print("Please enter a number: ");
        int number = scanner.nextInt(); // Declare number variable
        System.out.println(); // Print out a blank line

        // Instance if statements using number from isNumber method
            if (isNumber(number %  5 & number % 3)) {
                System.out.println("CS "); // Prints CS if number is a multiple of 3 and 5
            } else {
                if (isNumber(number % 5)) {
                    System.out.println("Science "); // Prints "Science" if number is a multiple of 5
                    } else {
                        if (isNumber(number % 3)) {
                        System.out.println("Computer "); // Prints "Computer if number is a multiple of 3
                        } else {
                            if (isNumber(number)){
                                System.out.println("");
                                } else {
                                    if (number <= 0){
                                    System.out.println("Please use a positive number only.");
                                    } // End if
                            } // End if
                        } // End if
                } // End if
            } // End if
    } // End method main


    // Method isNumber to return value with if statements


    public static boolean isNumber(int value) {
        if (value % 5 == 0 && value % 3 == 0) { // if statement for multiples of 3 and 5
            return value % 5 == 0 && value % 3 == 0; // return multiples of 15
            } else {
                if (value % 5 == 0) { //  if statement for multiples of 5
                    return value % 5 == 0; // return multiples of 5
                    } else {
                        if (value % 3 == 0) { // if statement for multiples of 3
                            return value % 3 == 0; // return value
                            } else {
                                return value == 0;
                        } // End if
                } // End if
        } // End if
    } // End isNumber method
} // End program

那是因为您已经指定了所需的模数输出。 所以在 if 语句的最后它应该是类似于if(number %3 ==0 )你必须包含 ==0 来指代可分性,所以在 mod 语句的末尾添加 ==0 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM