Java 为什么我的方法不返回int?
我已经创建了一个方法,它接受一个字符串和一个int,并返回一个int。 我想知道为什么它不起作用。NumSLHorizontal无法解析为变量这是代码的相关部分Java 为什么我的方法不返回int?,java,methods,int,return,Java,Methods,Int,Return,我已经创建了一个方法,它接受一个字符串和一个int,并返回一个int。 我想知道为什么它不起作用。NumSLHorizontal无法解析为变量这是代码的相关部分 for (int x = 1; x <= H; x++) { System.out.println("Introduza os " + V + " valores das rua " + x); String RuaTemp = input.next(); Confirmador(R
for (int x = 1; x <= H; x++) {
System.out.println("Introduza os " + V + " valores das rua " + x);
String RuaTemp = input.next();
Confirmador(RuaTemp, V);
}
System.out.println(NumSLHorizontal);
input.close();
}
public static int Confirmador (String RuaTemp, int V) {
int NumSLHorizontal = 0;
for (int z = 0; z < V; z++) {
char firstLetter = RuaTemp.charAt(z);
if (firstLetter == '-') {
NumSLHorizontal++;
}
}
return NumSLHorizontal;
您需要将返回值分配给变量:
int NumSLHorizontal = 0;
for (int x = 1; x <= H; x++) {
...
NumSLHorizontal = Confirmador(RuaTemp, V);
}
System.out.println(NumSLHorizontal);
请注意,按照代码的结构,它只保留并打印上次调用Confirmador时得到的值。当调用返回值的方法时,实际上必须对该值进行处理 您的方法如下所示:
public static int Confirmador (String RuaTemp, int V) {
int NumSLHorizontal = 0;
for (int z = 0; z < V; z++) {
char firstLetter = RuaTemp.charAt(z);
if (firstLetter == '-') {
NumSLHorizontal++;
}
}
return NumSLHorizontal;
}
或者您可以将其传递给另一种方法:
System.out.println(Confirmador(RuaTemp, V));
或者您可以在表达式中以任何其他方式使用它,您可以使用int。如果您显示所有代码,可能会更好。根据我从这段代码中了解到的情况,存在一个作用域问题。您正试图从该函数外部输出Confirmador内部存在的NumSLHorizontal。通常,除非有一个名为NumSLHorizontal的全局变量,否则您将无法编译该变量。如果是这样,它在Confirmador中被重写。如果我错了,请纠正我。什么不起作用??,实际行为是什么??Eclipse告诉我:NumSLHorizontal无法解析为变量confirmadorruatemp,V;,在这里,您应该得到返回值….-1,用于不标识标记错误的行。没有这些信息,很难看到你的bug。在这里提问时,始终包括整个错误消息,并标识标记的行。
result = Confirmador(RuaTemp, V);
System.out.println(Confirmador(RuaTemp, V));