Java Tutorial/Statement Control/For Each Loop

Материал из Java эксперт
Перейти к: навигация, поиск

Iterating over Multidimensional Arrays: Use for-each style for on a two-dimensional array

   <source lang="java">

public class MainClass {

 public static void main(String args[]) {
   int sum = 0;
   int nums[][] = new int[3][5];
   // give nums some values
   for (int i = 0; i < 3; i++)
     for (int j = 0; j < 5; j++)
       nums[i][j] = (i + 1) * (j + 1);
   // use for-each for to display and sum the values
   for (int x[] : nums) {
     for (int y : x) {
       System.out.println("Value is: " + y);
       sum += y;
     }
   }
   System.out.println("Summation: " + sum);
 }

}</source>



Value is: 1
Value is: 2
Value is: 3
Value is: 4
Value is: 5
Value is: 2
Value is: 4
Value is: 6
Value is: 8
Value is: 10
Value is: 3
Value is: 6
Value is: 9
Value is: 12
Value is: 15
Summation: 90


The for each loop for an enum data type

   <source lang="java">

for (type identifier : iterable_expression) {

 // statements

}</source>



The season is now spring
 The season is now summer
 The season is now fall
 The season is now winter


The for-each loop is essentially read-only

   <source lang="java">

public class MainClass {

 public static void main(String args[]) {
   int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

   for(int x : nums) {
     System.out.print(x + " "); 
     x = x * 10; // no effect on nums
   }
  
   System.out.println();
   for(int x : nums) 
     System.out.print(x + " "); 
   System.out.println();
 }  

}</source>



1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10


The For-Each Version of the for Loop

The general form of the for-each version of the for is shown here:



   <source lang="java">

for(type itr-var : iterableObj) statement-block</source>



The object referred to by iterableObj must be an array or an object that implements the new Iterable interface.


Use a for-each style for loop

   <source lang="java">

public class MainClass {

 public static void main(String args[]) { 
   int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 
   int sum = 0; 
   // use for-each style for to display and sum the values
   for(int x : nums) { 
     System.out.println("Value is: " + x);
     sum += x; 
   } 
   System.out.println("Summation: " + sum);
 } 

}</source>



Value is: 1
Value is: 2
Value is: 3
Value is: 4
Value is: 5
Value is: 6
Value is: 7
Value is: 8
Value is: 9
Value is: 10
Summation: 55


Using break with a for-each-style for

   <source lang="java">

public class MainClass {

 public static void main(String args[]) {
   int sum = 0;
   int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
   // Use for to display and sum the values.
   for (int x : nums) {
     System.out.println("Value is: " + x);
     sum += x;
     if (x == 5){
       break; // stop the loop when 5 is obtained
     }
   }
   System.out.println("Summation of first 5 elements: " + sum);
 }

}</source>



Value is: 1
Value is: 2
Value is: 3
Value is: 4
Value is: 5
Summation of first 5 elements: 15


Using "for each" to loop through array

   <source lang="java">

public class MainClass {

 public static void main(String[] arg) {
   char[] vowels = { "a", "e", "i", "o", "u"};
   
   for(char ch: vowels){
     System.out.println(ch);
   }
 }

}</source>



a
e
i
o
u


Using the For-Each Loop with Collections: ArrayList

For-Each Loop can be used to any object that implements the Iterable interface. This includes all collections defined by the Collections Framework,



   <source lang="java">

import java.util.ArrayList;

public class MainClass {

 public static void main(String args[]) { 
   ArrayList<Double> list = new ArrayList<Double>();
   list.add(10.14);
   list.add(20.22);
   list.add(30.78);
   list.add(40.46);
   double sum = 0.0;
   for(double itr : list)
     sum = sum + itr;
   System.out.println(sum);
 
 } 

}</source>



101.6