对于Java中的循环

For loop in Java

本问题已经有最佳答案,请猛点这里访问。

我正在为最后几对夫妇编程,但今天我看到了一个新的东西,我在网上搜索但找不到完美的答案。 有一个代码说

1
2
3
4
for(String string : mCha) // line 1
{
// loop working
}

我想问一下1号线是什么意思? 正如我所研究的那样,for循环中应该有3个参数,如果我们不想给出,那么应该遵循以下方法

1
2
3
for(;;)
{
}

请解释我,因为我对这个语法完全陌生,我在网上搜索但找不到任何有用的东西。


1
2
3
4
for(String string : mCha) // line 1
{
  // loop working
}

是一个简写:

1
2
3
4
for (Iterator<String> i = mCha.iterator(); i.hasNext(); ) {
  String string = (String)i.next();
  //loop working
}

(假设mCha实现Iterable,数组的处理方式不同,请参阅有关enchanced for语句的JLS)

示例:

1
2
3
4
for(String string : mCha) // line 1
{
  System.out.ptinln(string) // For each element of my collection, display it.
}


I want to ask that what does the line 1 mean?

这是java中的for-each循环。它相当于

1
2
3
4
5
Iterator<String> it = mCha.iterator();
while(it.hasNext()){
    String string = it.next();
    // loop working
}

for-each循环在java 1.5中引入。有关详细信息,请参阅For-Each循环。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
This is known as for-eachloop introduced in java5.
for(String string : mCha) // line 1
{
// loop working
}
It is used to iterate with both collections and arrays same as normal for loop

Syntax:

for(data_type variable : array | collection){}

Example:

    int[] array = {1,3,6};
    int sum = 0;
    for (int i : array) {  
        sum += i;
    }
    System.out.println("Total sum":+sum);

I hope it is clear

看这个例子....

1
2
3
4
5
6
7
List v = new ArrayList();
v.add("aa");
v.add("bb");
v.add("cc");
for (Object str : v) {
   System.out.println(str.toString());
}

它会给出输出

1
2
3
aa
bb
cc

for (Object str : v)它在对象集合上传播。


在Java 5中扩展了基本for循环,以便更方便地对数组和其他集合进行迭代。这个较新的for语句称为增强for或for-each(因为它在其他编程语言中称为this)。我也听说它叫做for-in循环。

解释每个循环的简单示例

1
2
3
4
5
6
7
8
9
class ForEachExample1{  
   public static void main(String args[]){  
   int arr[]={12,13,14,44};  

   for(int i:arr){  
     System.out.println(i);  
   }    
 }  
}

还可以看到For-Each Loop


它被称为增强的for循环。它是在Java 5中引入的。它与使用索引的旧for循环类似。两者都可用于迭代集合和数组。

Old for循环:使用for循环的这种格式,您可以访问索引变量,也可以根据需要跳过索引。

1
2
3
for(int i=0;i<size;i++){
   //code
}

增强的for循环:与旧的for循环相比,这种格式非常不灵活。只有在需要遍历集合的每个元素并且不需要知道集合中任何特定元素的索引时,才会使用此格式。

1
2
3
4
 for(String string : mCha) // This means that"For each String element in the collection/array mCha"
 {
    //code
 }

阅读更多关于增强型for循环的信息


1
2
3
4
for(String string : mCha) // line 1
{
 // loop working
}

这里mCha是一个集合可以是arraylist或者其他任何东西和for循环(这是for循环的一个特例)上面是扫描每个string从开始到结束的< x2>或list