为什么要使用 for 循环

[an error occurred while processing the directive]

为什么要使用 for 循环

Java 中有三种主要的循环结构:while 循环、do…while 循环、for 循环。

虽然所有循环结构都可以用 while 或者 do…while 表示,但 Java 提供的 for 循环,使一些循环结构变得更加简单。

比如我们要实现变量 x 从 0 增加到 10 ,while 循环的实现方式如下:

class Test {

public static void main(String[] args) {

int x = 0;

while(x < 10){

x++;

System.out.println(x);

}

}

}

通过 for 循环的实现方式更加简单:

class Test {

public static void main(String[] args) {

for( int x = 0; x < 10; x++){

System.out.println(x);

}

}

}

同样的,在 Python3 中,通过 for 循环也能使得代码更为简洁。

JAVA 与 Python3 中 for 循环语句在功能上的区别

JAVA 中 for 循环语句的一般形式为:

for(初始化; 布尔表达式; 更新) {

//代码语句

}

而在 Python3 中 for 循环语句的一般形式为:

for in :

else:

可见 Python3 中的 for 循环在形式上更加简单,但这也导致了其功能不如 JAVA 中的 for 循环强大。比如,我想要实现插入排序,在 JAVA 中可以采用如下代码:

// 方法一

public class Soultion{

public int[] sortArray(int[] nums){

int len = nums.length;

for(int i = 1; i < len; i++){

for(int j = i; j > 0; j--){

if(nums[j - 1] > nums[j]){

swap(nums, j - 1, j);

}else{ // 正是因为插入排序有机会提前结束内层循环,所以一般比选择排序和冒泡排序更高效

break;

}

}

}

return nums;

}

private void swap(int[] nums, int index1, int index2){

int temp = nums[index1];

nums[index1] = nums[index2];

nums[index2] = temp;

}

}

我们对代码进行进一步优化,使得代码变得更加简洁:

// 方法二

public class Soultion{

public int[] sortArray(int[] nums){

int len = nums.length;

for(int i = 1; i < len; i++){

// --------------这部分是修改的地方--------------------------------

// 相当于将之前的 if...else 语句嵌入到了内层 for 循环之中

for(int j = i; j > 0 && nums[j - 1] > nums[j]; j--){

swap(nums, j - 1, j);

}

// -------------------------------------------------------------

}

return nums;

}

private void swap(int[] nums, int index1, int index2){

int temp = nums[index1];

nums[index1] = nums[index2];

nums[index2] = temp;

}

}

同样是为了实现插入排序算法,在 Python3 中,由于没有一个显示的布尔表达式,因此我们不能像上面方法二一样做代码的简化。

参考:

https://www.runoob.com/java/java-loop.htmlhttps://www.runoob.com/python3/python3-loop.htmlhttps://www.bilibili.com/video/BV1y44y1q7MJ?p=7

[an error occurred while processing the directive]
Copyright © 2088 1990年世界杯_世界杯球赛 - xqgjmy.com All Rights Reserved.
友情链接