制作了一个程序,可以打印数字是否奇怪。如果数字是奇数,那就很奇怪了。如果数字是偶数且在 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 0
或This 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/