我设置了这个程序,我需要帮助,我得到了2个错误
import java.util.Scanner;
public class EvenOdd {
public static void main(String[]args) {
Scanner keyboard = new Scanner (System.in);
System.out.print("---EvenOdd--- /n");
System.out.printf("Enter a whole number: ");
c = in.nextInt();
}
public static EvenOdd (int num) {
int c = num;
if (int.class)
(c/2)*2 = c;
System.out.println("is even.");
else (c)
System.out.println("is odd");
return EvenOdd;
}
}
C:UsersDesktopEvenOdd.java:28: error: not a statement
else (c)
C:UsersDesktopEvenOdd.java:28: error: 'else' without 'if'
else (c)
2 errors
你的else没有意义。首先,你没有使用大括号,而且你的布尔逻辑也没有意义。仅仅添加大括号不会使你的代码编译。
我认为这个重写是最接近你的
public static boolean EvenOdd (int num) {
// Here your calculation is done
boolean isEven = (c/2)*2 == c;
if (isEven) {
System.out.println("is even.");
} else if (!isEven) {
// Using 'else if' for a boolean parameter does not make much sense
// but i'll leave it here to explain the syntax
System.out.println("is odd");
}
return isEven;
}
然而,最常用的检查奇数或偶数的方法是使用模数运算符。如果我把整个代码写得更像java的话,你就会得到(例如方法命名)
/**
* Check if the given number is even.
* @param num the number to check
* @return whether num is an even number
*/
public static boolean isEven (int num) {
if ((x % 2) == 0) {
System.out.println("is even.");
return true;
} else {
System.out.println("is odd");
return false;
}
}
这是一个解决方案
public static void main(String[]args)
{
Scanner keyboard = new Scanner(System.in);
try{
System.out.println("---EvenOdd---");
System.out.print("Enter a whole number: ");
int c = keyboard.nextInt();
evenOdd(c);
}finally{
keyboard.close();
}
}
public static void evenOdd(int num)
{
int c = num;
if ((c/2)*2 == c){
System.out.println("is even.");
}else {
System.out.println("is odd");
}
}
输出:表示输入值5
——EvenOdd
输入整数:5
是奇数
表示输入值4
——EvenOdd
输入整数:4
是偶数。
继续阅读
原始代码有几个问题,我将尝试按行顺序解释它们。
原始代码参考:
public class EvenOdd {
public static void main(String[]args) {
Scanner keyboard = new Scanner (System.in);
System.out.print("---EvenOdd--- /n");
System.out.printf("Enter a whole number: ");
c = in.nextInt();
}
public static EvenOdd (int num) {
int c = num;
if (int.class)
(c/2)*2 = c;
System.out.println("is even.");
else (c)
System.out.println("is odd");
return EvenOdd;
}
}
首先是这一行
System.out.print("---EvenOdd--- /n");
在这里使用.print()
方法,虽然不是非法的,但没有必要,因为java为我们提供了.println()
,它会自动创建一个新行,所以我们不必这样做。(即带有"/n")
System.out.printf("Enter a whole number: ");
接下来使用.printf()
方法,该方法打印格式化的输出并接受参数作为参数。您没有使用此方法的任何专有功能,因此我们可以使用.print()
实现相同的功能。
c = in.nextInt();
变量in
在这个范围内没有定义,我假设您的意思是使用keyboard.nextInt()
。
public static EvenOdd (int num) {
当一个方法没有返回类型并且与它所在的类同名(区分大小写)时,它是构造函数。构造函数不需要return
语句,通常用new ObjectConstructor()
语法调用,将值赋给与构造函数类型相同的变量。
if (int.class)
(c/2)*2 = c;
System.out.println("is even.");
else (c)
System.out.println("is odd");
这个if-else
块显然甚至不是java
语法。
首先,没有必要将结果强制转换为int
,并且条件末尾的分号不属于。
删除这些错误将得到:
if (c/2)*2 = c
System.out.println("is even.");
else (c)
System.out.println("is odd");
现在我们需要将条件括在括号' (
和)
'中,而不是使用赋值运算符' =
',我们应该使用返回boolean
的比较运算符' ==
'。此外,else
子句不需要条件,如果您想使用条件,请查看elseif
。
这些变化使我们进入这一步。
if ((c/2)*2 == c)
System.out.println("is even.");
else
System.out.println("is odd");
现在我们添加适当的括号,就可以开始了。
if ((c/2)*2 == c){
System.out.println("is even.");
}else{
System.out.println("is odd");
}