为什么我的方法不返回一个int?
我做了一个方法,将采取一个字符串和一个int并将返回一个int。 我想知道它为什么不起作用。 (NumSLHorizontal不能被解析为一个变量)下面的代码的相关部分为什么我的方法不返回一个int?
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 result=0;
for (int x = 1; x <= H; x++) {
System.out.println("Introduza os " + V + " valores das rua " + x);
String RuaTemp = input.next();
result = Confirmador(RuaTemp, V);
}
System.out.println(result);
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;
}
作品!非常感谢。 – 2014-11-05 18:32:43
您需要的返回值赋值给一个变量:
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;
}
看来,你认为return NumSLHorizontal
会把结果NumSLHorizontal
和再程序的其余部分将使用该变量名称来访问结果。那不会发生什么。 NumSLHorizontal
是在Confirmador
方法中的局部变量,并且仅在该方法内可以访问该变量。
正如其他答案所述,为了使用返回值,您必须在调用该方法时使用该值执行某些操作。您可以在其他变量分配给它:
result = Confirmador(RuaTemp, V);
,或者你可以把它传递给另一个方法:
System.out.println(Confirmador(RuaTemp, V));
或者你可以在你可以使用一个int
任何其他方式使用它的表达式。
如果你显示所有的代码,它可能会更好。从这个代码中我可以理解的是存在一个范围问题。你试图从这个函数的外部输出Confirmador内存在的NumSLHorizontal。通常你不应该能够编译这个,除非有一个名为NumSLHorizontal .if的全局变量所以,它在Confirmador内被覆盖。如果我错了,请纠正我。
什么不工作?,实际行为是什么? – DGomez 2014-11-05 18:29:02
Eclipse告诉我: NumSLHorizontal无法解析为变量 – 2014-11-05 18:29:42
Confirmador(RuaTemp,V);这里您应该得到返回值.... – DGomez 2014-11-05 18:30:09