Java If语句和布尔问题?
我似乎无法理解为什么我的代码会以我所看到的方式运行。我错过了什么Java If语句和布尔问题?,java,Java,我似乎无法理解为什么我的代码会以我所看到的方式运行。我错过了什么 import java.util.Scanner; class EvenOdd { public static boolean isEven(int number) { if(number %2 == 0){ System.out.println("Given number is even."); return true; }
import java.util.Scanner;
class EvenOdd {
public static boolean isEven(int number) {
if(number %2 == 0){
System.out.println("Given number is even.");
return true;
}
else {
System.out.println("Given number is odd.");
}
return false;
}
public static void main(String[] args) {
int number = 0;
Scanner scanner =new Scanner(System.in);
System.out.println("Enter any number Even or ODD");
number = scanner.nextInt();
}
}
我希望根据用户输入的数字看到偶数或奇数?您从未运行过
isEven(int)
方法。通过编写isEven(int)
Java启动,尝试在主类中调用该方法。Java运行主方法。Java创建了一个名为number
的新变量。它的值是0。。制作了一台新的扫描仪。将打印文本“输入任意偶数或奇数”。从键盘上检索一个数字
然后你的节目就结束了
是的,您的代码有一个isEven
方法,但没有调用它。实际上,您必须在main中调用isEven
方法,例如:
isEven(number);
作为main方法中的最后一行。您错过了main方法中的
isEven
方法的调用
import java.util.InputMismatchException;
import java.util.Scanner;
class EvenOdd {
public static boolean isEven(int number) {
if (number % 2 == 0) {
System.out.println("Given number is even.");
return true;
} else {
System.out.println("Given number is odd.");
}
return false;
}
public static void main(String[] args) {
try {
int number = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter any number Even or ODD");
number = scanner.nextInt();
boolean isEven = isEven(number);
System.out.println(isEven);
} catch (InputMismatchException e) {
System.out.println("Handle Exception " + e.getMessage());
}
}
}
如果输入的不是数字,请处理异常。根据此答案的建议,请参见示例。如果出现任何异常,您可以最终阻止并关闭那边的扫描仪从不关闭标准输入数据流。请阅读我更喜欢Oracle文档:“标准”输入流。此流已经打开,可以提供输入数据。通常,此流对应于键盘输入或主机环境或用户指定的另一个输入源。因此,您没有获取它,而是获取“主机环境或用户”。所以你不应该关上它。如果你真的破坏了一个操作系统(“主机环境”)资源,那么可能会产生所有的不良影响。FWIW:你是否也关闭了System.err和System.out?希望你不会。如果你不这样做:你应该以同样的方式对待系统。请阅读并相应地强化你的问题。