foreach语句与for语句:
foreach不是一条单独的语句,仅仅是for语句的特殊简化版本,foreach不能完全取代for语句。任何foreach语句都能改写成for语句。foreach语句的含义是从元素0开始依次遍历数组或集合中的每个元素。
foreach语句形式:
for(数组或集合的数据类型 元素变量 x:数组或集合对象){
处理元素变量 x;
}
通过foreach语句遍历一维数组:
public class foreanch {
public static void main(String[] args) {
int rank[] = {1,2,3,4};
for(int x:rank) {
System.out.print(x+" ");
}
}
}
输出结果为:
1 2 3 4 |
for语句形式:
for(数组或集合的数据类型 x;数组或集合的元素长度;数据算法){
处理数组或集合元素;
}
public class for1 {
public static void main(String[] args) {
int rank[] = {1,2,3,4};
for(int i = 0;i < rank.length;i++){
System.out.print(rank[i]+" ");
}
}
}
输出结果为:
1 2 3 4 |
foreach语句遍历二维数组:
foreach遍历二维数组的算法与遍历一维数组不同,需要把二维数组看成一维数组。
package bag.kkm.liu;
public class foreach2 {
public static void main(String[] args) {
int rank1[][] = {{1,2,3},{4,5,6}};
//把二维数组rank1的每个元素看成元素类型为int[]的一维数组
//rank2是int[]类型的一维数组
for(int []rank2:rank1){
for(int x:rank2) {
System.out.print(x + " ");
}
}
}
}
输出结果为:
1 2 3 4 5 6 |
for语句输出与foreach语句输出:
for语句输出:
for语句输出不需要引进临时数组,通过引入引入临时内部成员进行输出;
package com.djk.www;
import java.util.Scanner;
public class forandforeach {
//fun方法将矩阵赋值
public static void fun(int rank[][]){
int c=0;
for (int i=0;i< rank.length;i++){
for (int j=0;j<rank[i].length;j++){
rank[i][j] = c++;
}
}
}
public static void main(String[] args) {
int n;
Scanner scan = new Scanner(System.in);
System.out.print("输出矩阵:");
n = scan.nextInt();
int rank[][] = null;
rank = new int [n][n];
fun(rank);
for (int i=0;i< rank.length;i++){
for (int j=0;j<rank[i].length;j++){
System.out.print(rank[i][j]+" ");
}
System.out.println();
}
}
}
foreach语句输出:
foreach语句输出需要引入临时一维数组,将二维数组转换为一维数组输出;
引入形式如下:
public class shi {
public static void main(String[] args) {
int rank[][] = {{1,2,3},{4,5,6}};
for(int rank1[]:rank){
for(int n:rank1){
System.out.print(n+" ");
}
}
}
}
1 2 3 4 5 6 |
其中的一维数组rank1[],变量n属于临时引入,不需要特别定义。
用foreach语句进行输出:
package com.djk.www;
import java.util.Scanner;
public class forendforeach {
public static void main(String[] args) {
int n;
Scanner scan = new Scanner(System.in);
System.out.print("输出矩阵:");
n = scan.nextInt();
int rank[][] = null;
rank = new int [n][n];
fun(rank);
for (int rank1[]:rank){
for(int x:rank1){
System.out.print(x+" ");
}
System.out.println();
}
}
//通过fun方法对矩阵进行赋值
public static void fun(int rank[][]){
int c=0;
for (int i=0;i< rank.length;i++){
for (int j=0;j<rank[i].length;j++){
rank[i][j] = c++;
}
}
}
}