我想从ArrayList
中获取一些特定数量的随机值final ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
for (int i = 0; i == 4; i++) {
index = random.nextInt(menuItems.size());
HashMap<String, String> getitem = menuItems.get(index);
System.out.println(getitem.get(KEY_NAME));
}
什么都没打印出来。
循环中的代码可以工作,如果我在循环外使用它,但由于我需要多个值,我使用循环,它不起作用。
答案 0 :(得分:5)
变化
for (int i = 0; i == 4; i++) { // start with i beeing 0, execute while i is 4
// never true
到
for (int i = 0; i < 4; i++) { // start with i beeing 0, execute while i is
// smaller than 4, true 4 times
for循环具有以下结构:
for (initialization; condition; update)
在循环开始之前执行一次 initialization
。在每次循环迭代之前检查condition
,并在每次迭代后执行update
。
您的初始化为int i = 0;
(执行一次)。您的条件为i == 4
,这是错误的,因为i
是0
。因此条件为假,并且跳过循环。
答案 1 :(得分:2)
for循环的结束条件被破坏:for (int i = 0; i == 4; i++)
应为for (int i = 0; i < 4; i++)
(4次迭代)或for (int i = 0; i <= 4; i++)
(5次迭代)。
This tutorial解释了for
语句的工作原理。