|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 零度非安全 于 2017-1-21 16:51 编辑
【Java 教程(原创)】索引帖
JDK 1.5 版本对 for 语句的功能给予扩充、增强,以便更好地遍历数组。其语法格式如下:
- for(声明循环变量:数组的名字){
- .
- .
- .
- }
复制代码 其中,声明的循环变量的类型必须和数组的类型相同,切记 。
这种形式的 for 语句类似自然语言中的 for each 语句,为了便于理解上述 for 语句,可以将这种形式的 for 语句翻译成“对于循环变量依次取数组的每一个元素的值”。
下面这个例子分别使用 for 语句的传统方式和改进方式遍历数组,让我们先尝个鲜,go go go!
运行效果如下:
栗子代码如下:
newForUse.java
- public class newForUse{
- public static void main(String args[]){
- int[] a = {1,2,3,4};
- char[] b = {'a','b','c','d'};
- for(int n = 0;n < a.length;n++){ //传统方式
- System.out.println(a[n]);
- }
- for(int n = 0;n < b.length;n++){ //传统方式
- System.out.println(b[n]);
- }
- for(int i:a){ //循环变量i依次取数组a的每一个元素的值(改进方式)
- System.out.println(i);
- }
- for(char ch:b){ //循环变量ch依次取数组b的每一个元素的值(改进方式)
- System.out.println(ch);
- }
- }
- }
复制代码
需要特别注意的是:
这其中的“声明循环变量”必须是变量声明,不可以使用已经声明过的变量,例如,将上述代码中的第一个改进方式 for 语句不可以分开写成如下两条语句:
- int i = 0;
- for(i:a){
- System.out.println(i);
- }
复制代码
枚举类型与 for、switch 语句
在第 007 讲已经学过了枚举类型,在这里再简单的回忆下枚举类型,例如下面这段代码:
- enum WeekDay{
- sun,mon,tue,wed,thu,fri,sat
- }
复制代码
声明了名字为 WeekDay 的枚举类型,该枚举类型有 7 个常量。
在声明一个枚举类型后,就可以用该枚举类型声明一个枚举变量了。该枚举变量只能取枚举类型中的常量,通过使用枚举名和“ . ”运算符获得枚举类型的常量。例如:
- WeekDay day = WeekDay.mon;
复制代码
枚举类型可以用如下形式:
返回一个数组,该数组元素的值和该枚举类型中的常量依次对应,例如:
- WeekDay a[] = WeekDay.values();
复制代码
那么,a[0] ~ a[6] 的值依次为 sun、mon、tue、wed、thu、fri、sat。
JDK1.5 之后的版本可以使用 for 语句遍历枚举类型中的常量。在下面这个栗子中,输出从红、蓝、绿、黄、黑颜色取出 3 种不同颜色的排列(不是组合),运行效果如下:
栗子代码如下:
sortColor.java
- enum Color{
- 红,蓝,绿,黄,黑
- }
- public class sortColor{
- public static void main(String args[]){
- for(Color a:Color.values()){
- for(Color b:Color.values()){
- for(Color c:Color.values()){
- if(a!=b && a!=c && b!=c){
- System.out.println(a + "," + b + "," + c + "|");
- }
- }
- }
- }
- }
- }
复制代码
JDK1.5 以后的版本允许 switch 语句中的表达式的值是枚举类型,下面这个栗子结合 for 语句和 switch 语句显示了 5 种水果中部分水果的价格,其中,for 语句和 switch 语句都使用了枚举类型。
运行效果如下:
栗子代码如下:
fruitPrice.java
- enum Fruit{
- 苹果,梨,香蕉,西瓜,芒果
- }
- public class fruitPrice{
- public static void main(String args[]){
- double price = 0;
- boolean show = false;
- for(Fruit fruit:Fruit.values()){
- switch(fruit){
- case 苹果:
- price = 1.5;
- show = true;
- break;
- case 芒果:
- price = 6.8;
- show = true;
- break;
- case 香蕉:
- price = 2.8;
- show = true;
- break;
- default: show = false;
- }
- if(show){
- System.out.println(fruit + "500克的价格:" + price + "元");
- }
- }
- }
- }
复制代码
【特别注意】贴子中的栗子希望鱼油们能自觉的手动敲上去,不要单纯的复制粘贴保存,然后编译运行。
|
评分
-
查看全部评分
|