在以下程序中,应假定用户输入String
(城市名称),并且程序应返回数组中相应城市的索引。
但是在子例程indexCities
中出现以下错误:
“ nameCity无法解析”。
我想这是变量作用域的问题,但我不知道该怎么做。
谢谢你的帮助。
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方法的返回类型应该为空。
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;
}
}
}