我已经设置了这个程序,我需要帮助解决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:\Users\Desktop\EvenOdd.java:28: error: not a statement
else (c)
C:\Users\Desktop\EvenOdd.java:28: error: 'else' without 'if'
else (c)
2 errors
答案 0 :(得分:2)
你的别人没有意义。首先,你没有使用大括号,但你的布尔逻辑也没有意义。添加大括号不会使代码编译。
我认为这次改写最接近你所拥有的
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-ish,你最终会得到(例如方法命名)
/**
* 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;
}
}
答案 1 :(得分:2)
这是一个解决方案
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");
现在我们需要用括号'(
和)
'包装我们的条件,而不是使用赋值运算符'=
'我们应该使用比较运算符'{{1} }'返回==
。此外,boolean
子句不需要条件,如果您想使用条件查看else
。
这些变化让我们走到了这一步。
elseif
现在我们添加适当的括号,我们很高兴。
if ((c/2)*2 == c)
System.out.println("is even.");
else
System.out.println("is odd");