java - 尝试正确确定数字是否奇怪

标签 java methods output

制作了一个程序,可以打印数字是否奇怪。如果数字是奇数,那就很奇怪了。如果数字是偶数且在 2 和 5 之间(含 2 和 5),则并不奇怪。如果它是偶数并且包含在 6 和 20 之间,那就很奇怪,如果它是偶数并且大于 20,那就不奇怪。我在这里遇到的问题是,输出不是显示“这个数字很奇怪/不奇怪”,而是在一行上显示“奇怪”或“不奇怪”,如果是偶数,则后面跟着“这个数字是 0”,或“这个数字是 1”(如果是奇数)。

public Weird(int num) 
{       
    n = num;
}

public int EvenOrOdd() 
{
    int check = n % 2;
    int answer = n / 2;
    if (check == 0 && answer >= 2 && answer <= 5) 
    {
        System.out.println("Not Weird");
    }

    else if (check == 0 && answer >= 6 && answer <= 20) 
    {
        System.out.println("Weird");
    }

    else if (check == 0 && answer > 20) 
    {
        System.out.println("Not Weird");
    }

    else if (check != 0) 
    {
        System.out.println("Weird");
    }
    return check;
}


public static void main(String[] args) 
{
    Weird w = new Weird(32);
    Weird a = new Weird(21);
    System.out.println("This number is " + w.EvenOrOdd());
    System.out.println("This number is " + a.EvenOrOdd());

}

最佳答案

您实际上返回了 int,它是 check 字段的值。这是 1 或 0。

当您调用此线路时 -

System.out.println("This number is " + w.EvenOrOdd());
System.out.println("This number is " + a.EvenOrOdd());

它打印This number is 0This number is 1

您可以通过两种方式获得所需的输出 -

方式1- 将方法的返回类型更改为 void EvenOrOdd(),例如 -

public void EvenOrOdd() 
{
    int check = n % 2;
    int answer = n / 2;
    if (check == 0 && n >= 2 && n<= 5) 
    {
        System.out.println("Not Weird");
    }

    else if (check == 0 && n>= 6 && n<= 20) 
    {
        System.out.println("Weird");
    }

    else if (check == 0 && n> 20) 
    {
        System.out.println("Not Weird");
    }

    else if (check != 0) 
    {
        System.out.println("Weird");
    }
}

并在main as中调用方法

public static void main(String[] args) 
{
    Weird w = new Weird(32);
    Weird a = new Weird(21);
    w.EvenOrOdd();
    a.EvenOrOdd();

}

方式 2- 将方法的返回类型更改为 String as-

public String EvenOrOdd() 
{
    int check = n % 2;
    int answer = n / 2;
    if (check == 0 && n>= 2 && n<= 5) 
    {
        return "Not Weird";
    }

    else if (check == 0 && n>= 6 && n<= 20) 
    {
        return "Weird";
    }

    else if (check == 0 && n> 20) 
    {
        return "Not Weird";
    }

    else
    {
        return "Weird";
    }
}

主要方法保持不变-

public static void main(String[] args) 
{
    Weird w = new Weird(32);
    Weird a = new Weird(21);
    System.out.println("This number is " + w.EvenOrOdd());
    System.out.println("This number is " + a.EvenOrOdd());

}

关于java - 尝试正确确定数字是否奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919128/

相关文章:

methods - 将 Lua 方法定义为初始化

c++ - 简单的 C++ 控制台 I/O 问题

scala - 通过键Spark写入多个输出-一个Spark作业

java - 从另一个类混淆调用方法(机器人类)

java - 基本的 Spring 4 MVC - Hello World - 找不到错误 404 文件

java - 注释没有实现的方法

java - Spring Boot @ConditionalOnProperty 不加载 bean

java - 为什么用分号填充的方法体是可接受的语法?

c++ - 尝试在 C++ 程序中设置简单的键盘输入。使用变量存储 true 或 false

java - 异常: "Invalid action number found in internal parse table." Polyglot Exception