我需要有一个程序,要求用户为一个号码,并报告该号码的索引在列表中。如果号码没有找到,该程序不应打印任何东西。
- 示例:**
Sample Output:
1
2
3
3
4
Search for? 3
3 is at index 2
3 is at index 3
这是我写的,但是put循环了很多次。你能建议修复它吗?
import java.util.ArrayList;
import java.util.Scanner;
public class IndexOf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
while (true) {
int input = Integer.valueOf(scanner.nextLine());
if (input == -1) {
break;
}
list.add(input);
}
System.out.println("Search for? ");
int src = scanner.nextInt();
int ind = 0;
for(int i=0; i<list.size(); i++){
int num = list.get(i);
if(src == num){
ind = list.indexOf(src);
}
System.out.println(src + " is at index " + ind);
}
}
}
编辑
输入:1 2 3 3 4 -1
搜索?3输出:3在索引0,3在索引0,3在索引2,3在索引2,3在索引2,///所以每个索引只能有一个句子,即使我在for循环之后,它也只输出第一个if索引。
1条答案
按热度按时间rhfm7lfc1#
我可以在你的代码中看到一个问题,就是你打印了所有的东西,而不仅仅是匹配项。要解决这个问题,你需要把你的
System.out.println
放入if
中,如下所示:如果有什么不对劲就告诉我。