D三、java流程控制语句中Foreach语法

前言:

     流程控制语句都是很清楚的,这里就介绍foreach语法:一种更加简洁的for语法,用于数组和容器,不需要在创建int变量对由访问项构成的序列进行技术,foreach将自动的产生每一项。

      我们来看这个例子:(有一个float数组,我们需要选取数组中的每一个元素,输出)

import java.util.*;
public class ForEach {
	public static void main(String[]args) {
		Random rand = new Random(47);
		float f[] = new float[10];
		for(int i=0;i<10;i++)
			f[i] = rand.nextFloat();
		for(float x:f)
			System.out.println(x);
		
	}
}

     输出如下:

     上面代码中使用java.util.Random类,没有用java.lang.Math.random()方法,因为后者使用范围比较小,前者完全可以取代。其中java.util.Random类用法很多,这里使用了种子47(可以是任何数字),如果是Random rand = new Random(),那么就默认系统时间毫秒作为种子,这里的种子并没有起到直接的作用。但是如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

     至于其中使用到的random类的方法的语法及其作用,可以查看这个博主的博客:https://blog.csdn.net/weixin_41050155/article/details/79814304

     上面的例子中,生成了float的数组,然后用foreach语法返回每个元素,我们可以看到语法是:for(float x:f),将f数组中的元素赋值给x。所以我们可以看到,任何返回一个数组的方法都可以用到foreach,例如:

import java.util.*;
public class ForEach {
	public static void main(String[]args) {
		for(char c:"I am a boss".toCharArray())
			System.out.print(c+" ");
	}
}

     输出就是:

     上面例子中的toCharArray()方法就是返回char数组

     而对于一些需要像for(int i=0;i<100;i++)这类的代码在整型数组中步进的情况,foreach就不适用,因为我们首先要有数组或者容器。这里给出一个可以自动生成数组的range方法,它其实是生成器一个很简单的版本,在java和Python中都有应用,也可以自己覆盖这个方法。可以看这个大佬博客了解一下:https://www.jianshu.com/p/d81cbe674841

扫描二维码关注公众号,回复: 9457219 查看本文章

后记:

     感觉在流程控制语句这里还是很熟悉的,毕竟很多东西都和C语言C++一样,如有误,请指出,谢谢。

发布了93 篇原创文章 · 获赞 193 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43919400/article/details/104246818