for循环的几种使用方式(JAVA)

本文介绍了Java中遍历数组和集合的多种方式,包括传统的for循环、迭代器以及增强for循环(foreach)。通过示例代码展示了如何简单地遍历数组和Collection对象,并讨论了循环变量的修改、类型兼容性和安全性等问题。此外,还提到了使用上级类型作为循环变量的可能性以及自动类型转换的情况。

传统一般写法

1: 遍历数组的传统方式

/* 建立一个数组 */
int [] integers = {1,2,3,4};
/* 开始遍历 */
for (int j = 0 ; j < integers.length ; j++){
    int i = integers[j];
    System.out.println(i);
}

2:遍历Collection对象的传统方式(迭代器)

/* 建立一个Collection */
 String[] strings = {"A", "B", "C", "D"};
 Collection stringList = java.util.Arrays.asList(strings);
 /* 开始遍历 */
 for (Iterator itr = stringList.iterator(); itr.hasNext();) {
     Object str = itr.next();
     System.out.println(str);
 }

增强for循环写法

for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体

3:遍历数组的简单方式

/* 建立一个数组 */
 int[] integers = {1, 2, 3, 4};

 /* 开始遍历 */
 for (int i : integers) {
     System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
 }

遍历数组的简单方式的等价代码

/* 建立一个数组 */
 int[] integers = {1, 2, 3, 4};

 /* 开始遍历 */
 for (int 变量名甲 = 0; 变量名甲 < integers.length; 变量名甲++) {
     System.out.println(integers[变量名甲]); /* 依次输出“1”、“2”、“3”、“4” */
 }

4:遍历Collection的简单方式

/* 建立一个Collection */
 String[] strings = {"A", "B", "C", "D"};
 Collection list = java.util.Arrays.asList(strings);

 /* 开始遍历 */
 for (Object str : list) {
     System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
 }

遍历数组的简单方式的等价代码

/* 建立一个Collection */
 String[] strings = {"A", "B", "C", "D"};
 Collection stringList = java.util.Arrays.asList(strings);

 /* 开始遍历 */
 for (Iterator 变量名乙 = list.iterator(); 变量名乙.hasNext();) {
     Object str = 变量名乙.next();
     System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
 }

防止在循环体里修改循环变量

5:禁止重新赋值

int[] integers = {1, 2, 3, 4};
 for (final int i : integers) {
     i = i / 2; /* 编译时出错 */
 }

这只是禁止了对循环变量进行重新赋值。给循环变量的属性赋值,或者调用能让循环变量的内容变化的方法,是不被禁止的。

6:允许修改状态

Random[] randoms = new Random[]{new Random(1),new Random(2), new Random(3)};
 for (final Random r : randoms) {
     r.setSeed(4); /* 将所有Random对象设成使用相同的种子 */
     System.out.println(r.nextLong()); /* 种子相同,第一个结果也相同 */
 }

类型相容问题

7:使用和要被遍历的数组中的元素相同类型的循环变量

int[] integers = {1, 2, 3, 4};
 for (int i : integers) {
     System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
 }

8:使用和要被遍历的Collection中的元素相同类型的循环变量

Collection< String> strings = new ArrayList< String>();
		strings.add("A");
		strings.add("B");
		strings.add("C");
		strings.add("D");
		for (String str : strings) {
		System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
		}

循环变量的类型可以是要被遍历的对象中的元素的上级类型

例如,用int型的循环变量来遍历一个byte[]型的数组,用Object型的循环变量来遍历一个Collection< String>(全部元素都是String的Collection)等。

9:使用要被遍历的对象中的元素的上级类型的循环变量

String[] strings = {"A", "B", "C", "D"};
Collection< String> list = java.util.Arrays.asList(strings);
for (Object str : list) {
System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */
}

10:使用能和要被遍历的对象中的元素的类型自动转换的类型的循环变量

int[] integers = {1, 2, 3, 4};
for (Integer i : integers) {
System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
}

注意,这里说的“元素的类型”,是由要被遍历的对象的决定的――如果它是一个Object[]型的数组,那么元素的类型就是Object,即使里面装的都是String对象也是如此。

参考博客:https://www.cnblogs.com/hellochennan/p/5373186.html

Java 中,for 循环结束的方式有以下几种: 1. **条件表达式为 false**:传统 for 循环的基本语法为`for (初始化表达式; 条件表达式; 迭代表达式) { // 循环体 }`,每次循环开始时都会检查条件表达式,只有当它为 true 时才会执行循环体;当条件表达式为 false 时,循环终止。例如,下面的代码在`i`大于 5 时,条件表达式`i <= 5`为 false,循环结束: ```java public class ForLoopExample { public static void main(String[] args) { for (int i = 1; i <= 5; i++) { System.out.println("i 的值为:" + i); } } } ``` 2. **使用 break 关键字**:`break`关键字用于立即跳出当前所在的循环。例如,在下面的代码中,当`i`等于 5 时,执行`break`语句,循环结束: ```java public class BreakExample { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { if (i == 5) { break; // 当 i 等于 5 时跳出循环 } System.out.println(i); } } } ``` 3. **使用标签(Label)和 break 关键字**:在多层嵌套循环中,`break`只能跳出最内层的循环,如果需要跳出指定的外层循环,可以使用标签配合`break`来实现。例如,下面的代码中,当`i`等于 2 且`j`等于 2 时,执行`break outerLoop;`语句,跳出外层循环: ```java public class BreakWithLabelExample { public static void main(String[] args) { outerLoop: for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { break outerLoop; // 跳出外层循环 } System.out.println(i + " " + j); } } } } ``` 4. **使用 return 关键字**:`return`关键字用于结束当前方法的执行,从而间接结束循环。例如,下面的代码中,当`i`等于 5 时,执行`return`语句,方法结束,循环也随之结束: ```java public class ReturnExample { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { if (i == 5) { return; // 结束方法执行,跳出循环 } System.out.println(i); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值