我试图编写一个程序(用于作业),它将根据两个绝对参数确定某人是否有资格获得经济支持。为了实现这一点,我创建了三种新方法,目前我只能犯一个我根本无法理解的错误。该错误表示"标识符预期"在这部分代码上(在底部:
static void metodeTekst(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);
}
}
我已经尝试了一段时间在网上找到答案,但在大多数情况下,人们已经发现了这个错误,他们忘记写一个主要的方法。我没有,如你所见。在此先感谢 - 我对Java非常陌生,并感谢所有人的帮助!
答案 0 :(得分:1)
您的方法metodeTekst
是错误的。它应该是
static void metodeTekst()
{
String tekst = "Du vil faa redusert eller ingen studiestoette.";
System.out.println(tekst);
}
或
static void metodeTekst(String tekst)
{
System.out.println(tekst);
}
但是你必须这样称呼它:
metodeTekst("Du vil faa redusert eller ingen studiestoette.");
编辑OP的评论:
您的代码还有许多其他问题。如果最初定义i
的范围(metodeAlder
),则metodeHjemme
和i
中的变量main
在外。如果您确实需要在方法中更改此变量,则必须将其声明为主体外的static
字段。
除了一切编译好之后,这部分
while (i < 2)
{
i = i + 0;
}
毫无意义。您将永远处于无限循环中,因为您永远不会更改i
,因此它始终为< 2
。我会删除所有出现的i
,因为它没有任何意义,并且在您的程序中根本不需要。
编辑2:
关于为什么编译器现在只抱怨i
的问题:首先检查一下,如果所有方法签名都正确。由于它遇到了上一个错误(签名错误),因此无需进一步检查。现在您已经修复了它,编译器可以继续检查方法“内部”的语法。由于i
仅在方法的范围之外定义,因此它不知道应该是什么i
,因此是下一个编译器错误。
编辑3:
为了让我的解释更清楚,请看下面的例子:
{
// Outer Scope
{
// Inner Scope A
}
{
// Inner Scope B
}
{
// Inner Scope C
}
}
这里,三个内部范围A, B, C
彼此隔离。因此,内部范围A
中定义的变量对其他内部范围B
和C
不可见。相反,外部作用域中定义的变量对所有内部作用域都是可见的,因为它们也是外部作用域的一部分。