我在AP计算机科学课上彻底挣扎,几乎不知道最新情况。我一直在codingbat.com上练习,但我仍然需要一些错误的帮助:
令牌上的语法错误“boolean",@ expected。
和
令牌上的语法错误,而不是ClassHeader。
编辑:好的,所以我已经做了一些工作,并提出了这个
public class sleepIn
{
public static void main (String [] args)
{
boolean weekday=true;
boolean vacation=true;
if(weekday==true && vacation==false)
{
return false;
}
if(weekday==false && vacation==true)
{
return true;
}
}
}

public boolean sleepIn(boolean weekday, boolean vacation)
{
public static void main (String [] args)
{
boolean weekday=true;
boolean vacation=true;
if(weekday==true && vacation==false)
{
return false;
}
}
I'm still getting errors on it, but now they are different. They are:
文件:C:\ Users \ ralph \ Desktop \ sleepIn.java [line:10] 错误:Void方法无法返回值
和
文件:C:\ Users \ ralph \ Desktop \ sleepIn.java [line:14] 错误:Void方法无法返回值
答案 0 :(得分:1)
你似乎已经在另一个函数中声明了程序的主要功能。如果删除
public static void main (String[] args){}
从它将起作用的功能。 java程序将需要main函数,但只在类中定义而不是另一个函数。
//这是我的编辑,以解释你应该如何编写这个程序
public class MyClass {
//I define the class here^^
//Public function
public static void main(String args[]) {
//Here in the main function I will call the sleepIn
boolean sleepin = sleepIn(true,true);
//I am setting weekday and vacation to true, it should in return print true
System.out.println(sleepin); //It prints TRUE
}
//Your sleepIn function
public static boolean sleepIn(boolean weekday, boolean vacation){
if (weekday == true && vacation == true){
//Here the function returns true (boolean)
return true;
}
//The function returns false (boolean)
return false;
}
}
所以为了解释发生了什么,我正在定义一个类,然后在类中我有main方法(其中所有代码都将被执行)并且我有sleepIn函数(根据输入返回true或false)。正如您所看到的,当我在main方法中将两个prarams设置为true时调用sleepIn函数时,它会按预期返回一个布尔值(false)。然后我打印结果。
答案 1 :(得分:0)
现在代码中存在两个问题:
令牌上的语法错误“boolean",@ expected。
由于您没有从此函数返回布尔值,因为您将其返回类型定义为布尔值,如果您不想返回任何内容,则将其返回类型更改为void:
public boolean sleepIn(boolean weekday, boolean vacation)
{
//you need to return a boolean from here
}
或者:
public void sleepIn(boolean weekday, boolean vacation)
{
//do things
}
其次你需要拆分你的方法,你不能把一个嵌入另一个:
public static void main (String [] args)
{
boolean weekday=true;
boolean vacation=true;
if(weekday==true && vacation==false)
{
//return false; //your main shouldn't be returning anything since
//there's nothing to return to
}
}
public boolean sleepIn(boolean weekday, boolean vacation)
{
//you need to return a boolean from here
}
您需要在方法sleepIn
中返回一个布尔值,因为您在方法头中将其定义为返回类型:
public **boolean** sleepIn
无论您在返回类型中定义什么,您的方法都需要返回该类型的值。
public class Test {
public static void main (String[] args){
boolean weekday=true;
boolean vacation=true;
boolean result = sleepIn(weekday, vacation);
System.out.println(result);
}
public static boolean sleepIn(boolean weekday, boolean vacation)
{
return (!weekday || vacation); //true if not a weekday or is a vac.
}
}
答案 2 :(得分:0)
问题是您在另一个方法中定义了一个不允许的方法。这将是一个正确的类:
public class Test {
public static void main (String [] args){
boolean result = sleepIn(true, true);
System.out.println(result);
}
public static boolean sleepIn(boolean weekday, boolean vacation)
{
boolean weekday=true;
boolean vacation=true;
if(weekday==true && vacation==false)
{
return false;
}
}
}