在下面的程序中,用户应该输入一个String
(一个城市的名称),程序应该返回数组中相应城市的索引。
但是我得到一个错误,在子例程 indexCities
中出现以下消息:
"nameCity cannot be resolved".
我猜这是一个变量作用域的问题,但我不知道我应该怎么做。 感谢您的帮助。
import java.util.Scanner;
public class villes {
public static void main(String[] args) {
String cities[] = {"Vierzon","Salbris","Nouans","LB","LFSA","Orleans"};
Scanner input = new Scanner(System.in);
String nameCity = input.nextLine();
indexCities(cities);
}
public static int indexCities(String cities[]) {
for (int i = 0; i < cities.length; i++) {
if(nameCity.equals(cities[i])) {
System.out.println(i);
break;
}
}
}
}
最佳答案
nameCity 是 main 方法中的局部变量。您不能在方法之外访问它。 您的一个选择是将 nameCity 也作为参数传递给 indexCities 方法。此外,您的 indexCities 方法的返回类型应该为 void,因为您没有返回任何内容。
public static void main(String[] args) {
String cities[] = {"Vierzon","Salbris","Nouans","LB","LFSA","Orleans"};
Scanner input = new Scanner(System.in);
String nameCity = input.nextLine();
indexCities(cities, nameCity);
}
public static void indexCities(String cities[], String nameCity){
for (int i = 0; i < cities.length; i++) {
if(nameCity.equals(cities[i])) {
System.out.println(i);
break;
}
}
}
关于java - Java中以数组作为参数的子程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35648036/