Java中的for循环[重复]

Posted

技术标签:

【中文标题】Java中的for循环[重复]【英文标题】:For loop in Java [duplicate] 【发布时间】:2014-01-12 14:46:41 【问题描述】:

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

for(String string : mCha) // line 1

// loop working

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

for(;;)


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

【问题讨论】:

另见docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html 此语法在规范的The enhanced for statement 部分中定义。 请注意,for-each 不仅适用于数组,还适用于任何实现 Iterable<T> 的东西,其中包括所有 Java 的 Collections。 【参考方案1】:
for(String string : mCha) // line 1

  // loop working

是 : 的简写:

for (Iterator<String> i = mCha.iterator(); i.hasNext(); ) 
  String string = (String)i.next();
  //loop working

(前提是mCha实现Iterable,数组处理方式不同,见the JLS about the enchanced for statement)

例子:

for(String string : mCha) // line 1

  System.out.ptinln(string) // For each element of my collection, display it.

【讨论】:

简单明了+1 ... 假设 mCha 不是 String[] @PeterLawrey 你是对的。 JLS 声明数组案例的处理方式不同:docs.oracle.com/javase/specs/jls/se7/html/…【参考方案2】:

我想问一下第1行是什么意思?

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

Iterator<String> it = mCha.iterator();
while(it.hasNext())
    String string = it.next();
    // loop working

for-each 循环是在 java 1.5 中引入的。详情请见The For-Each Loop。

【讨论】:

【参考方案3】:
for(String string : mCha) // line 1

 // loop working 

这里的mCha 是一个集合,可以是arraylist 或任何东西,上面的for 循环(这是for 循环的一个特例)正在从头到尾扫描每个string arraylist

【讨论】:

【参考方案4】:

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

旧的 for 循环:使用这种格式的 for 循环,您可以访问索引变量,也可以随意跳过索引。

for(int i=0;i<size;i++)
   //code

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

 for(String string : mCha) // This means that "For each String element in the collection/array mCha"
 
    //code
 

详细了解增强的 for 循环 here

【讨论】:

【参考方案5】:

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

解释每个循环的简单示例

class ForEachExample1  
   public static void main(String args[])  
   int arr[]=12,13,14,44;  

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

另见The For-Each Loop

【讨论】:

【参考方案6】:
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

【讨论】:

【参考方案7】:

看这个例子....

List v = new ArrayList();
v.add("aa");
v.add("bb");
v.add("cc");
for (Object str : v) 
   System.out.println(str.toString());

它会给出输出

aa
bb
cc

for (Object str : v) 它在对象集合上旅行。

【讨论】:

忘记Vector,使用List:***.com/questions/1386275/…

以上是关于Java中的for循环[重复]的主要内容,如果未能解决你的问题,请参考以下文章

java怎么判断数组中有重复的元素

增强的 for 循环不适用于将值分配给数组(Java)[重复]

小白教程—最详细Java循环结构解析之for循环

Java for循环输出[重复]

在 Java 8 中使用嵌套的 for 循环,找出给定的差异 [重复]

for循环中的前缀与后缀[重复]