循环for循环以获取字符串

时间:2016-03-17 15:56:13

标签: java for-loop

尝试循环到for循环时出现问题。我想要做的是我有一个列表来存储食物清单。然后,我让用户选择是否(1)然后快餐其他(2)然后日本食物。之后我尝试设置foodType:

 int foodOption;
 Scanner sc = new Scanner(System.in);
 List<String> foodList = new ArrayList<>(Arrays.asList("KFC", "Sushi"));
 foodOption = sc.nextInt();
 for (int j = 0; j < foodList.size(); j++) {
     if (j == foodOption) {
         foodType = foodList.get(j);
         System.out.println("Testing;" + foodType);
     }
 }

然而,当我尝试打印出foodType时,它没有显示任何内容。有任何想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:0)

这一切都取决于你输入的内容。不要忘记数组将从索引0开始,这意味着如果你输入大于1的数据,你将无法获得任何输出。

在你的List<String> foodList中,你有两个要素;它们位于0 = KFC点和1 = Sushi点。

当您执行if( j == foodOption )时,如果用户未输入01,那么您将永远不会看到输出,因为List

答案 1 :(得分:0)

数组和列表索引从零开始。你的列表大小为2,这意味着它拥有的最大索引是1.这就是当foidOption为2时你看不到任何输出的原因。当你输入1时,你应该得到&# 34;寿司&#34;在输出中。

另请注意,循环完全没必要。您可以将其删除,只需改为if(foodOption < list.size) foodType = foodList.get(foodOption)

答案 2 :(得分:-1)

将类型<String>添加到ArrayList声明。

List<String> foodList = new ArrayList<String>(Arrays.asList("KFC", "Sushi"));

此外,ArrayList的索引从0开始。因此,输入&#39; 2&#39;由于您的Scanner输入不会返回值,因为它不在数组索引之内(0 =&#39; KFC&#39;,1 =&#39; Sushi&#39;)。 / p>