java新方法,<identifier>预期错误
我正试图为一项任务编写一个程序,该程序将基于两个绝对参数确定某人是否有资格获得经济支持。为了实现这一点,我创建了三个新方法,目前我发现了一个我无法理解的错误。错误在代码的这一部分显示“预期标识符”(在底部:
静态空隙测量(tekst)
这是我的密码:
import java.util.Scanner;
public class MinOppgave2a
{
public static void main (String[] args)
{
Scanner in = new Scanner (System.in);
String tastatur;
System.out.println();
System.out.println("\r\n" + "For aa kunne beregne ditt stoettegrunnlag, må du oppgi alderen din: ");
tastatur = in.nextLine();
int alder = Integer.parseInt(tastatur);
System.out.println();
System.out.println("\r\n" + "Bor du hjemme? Skriv 1 for «Ja», eller 2 for «Nei»: ");
tastatur = in.nextLine();
int hjemme = Integer.parseInt(tastatur);
System.out.println();
int i = 0;
while (i < 2)
{
i = i + 0;
}
metodeAlder(alder);
metodeHjemme(hjemme);
System.out.println("Du vil faa full studiestoette!");
}
static void metodeAlder(int alder)
{
if (alder <= 18 || alder >= 45)
i++;
else
metodeTekst(tekst);
}
static void metodeHjemme(int hjemme)
{
if (hjemme == 2)
i++;
else
metodeTekst(tekst);
}
static void metodeTekst(tekst)
{
String tekst = ("Du vil faa redusert eller ingen studiestoette.");
System.out.println(tekst);
}
}
我已经尝试了很长一段时间在网上找到答案,但是在大多数情况下,当人们遇到这个错误时,他们忘记了写一个main方法。正如你所看到的,我没有。提前感谢–我对Java真的很陌生,非常感谢您的帮助
# 1 楼答案
您的方法
metodeTekst
是错误的。应该是或
但你必须这样称呼它:
编辑OP的评论:
您的代码还有许多其他问题。如果最初定义了where
i
的范围(在main
),则metodeAlder
和metodeHjemme
中的变量i
在外部。如果确实需要在方法内部修改此变量,则必须将其声明为main之外的static
字段而且在一切都准备好之后,这部分
这是毫无意义的。你将在一个无休止的循环中结束,因为你从不改变
i
,所以它总是< 2
。我将删除所有出现的i
,因为它没有任何意义,在您的程序中根本不需要编辑2:
对于编译器为什么现在才抱怨
i
的问题:首先检查您的所有方法签名是否正确。因为它遇到了以前的错误(签名错误),所以不需要进一步检查。现在您已经修复了它,编译器可以继续检查方法“内部”的语法。由于i
只在方法的作用域之外定义,它不知道i
应该是什么,因此出现了下一个编译器错误编辑3:
为了让我的解释更清楚,请看以下示例:
这里,三个内部作用域
A, B, C
相互隔离。因此,内部作用域A
中定义的变量对其他内部作用域B
和C
不可见。相反,外部范围中定义的变量对所有内部范围都可见,因为它们也是外部范围的一部分