A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class  ArrayDemo01{
        public static void main(String[] args) {
                //定义一个数组
                int[] array = new int[]{1,2,3,4,5};

                printArray(array);
        }
        /*
        需求: 数组遍历
        明确:
               返回类型: void
                   未知内容: int[] arr
                   [1,2,3,4,5]
        */
             public static void printArray(int[] arr){
                    
                        System.out.print("[");
                        for(int x = 0;x<arr.length;x++){
                        //打印数组元素
                        //System.out.println(arr[x]);

                        //判断
                        if(x== arr.length-1){
                           System.out.print(arr[x]);
                        } else {
                       System.out.print(arr[x]+",");
                        }
                }

            System.out.println("]");

                 }
}

5 个回复

正序浏览
增强for循环不知道是哪一天的视频  -0-   
回复 使用道具 举报
本帖最后由 pandapan 于 2014-5-12 23:19 编辑

看了楼主的代码,看出想表达的含义是在数组元素中间插入逗号,最后的元素后面不插入逗号,然后用一行打印出来。
这个可以改进的地方呢,个人感觉有两处,一个是for循环的地方,另外一个是在循环内部判断是否是数组中最后一个元素的地方。
java中的for循环正如上面几位的回答,在jdk1.5中增加了增强型for循环,在此处可以使用这个。书写的格式和案例正如 @人生的目标 所写,此处不再赘述。此处重点说另外一个吧,就是判断数组中最后元素,然后加逗号的逻辑,可以这样处理的,我们直接用StringBuilder(可以自己查看jdk)来临时存储我们要打印的数据,并且在每个数组元素后追加逗号,最后呢,我们只需要取从0到数组的长度减去1的地方就可以了,即不打印最后的逗号。这样呢,好处有这样几点
1:在循环的过程中,不会占着控制台,最后一次性向数据打印到控制台,提高了效率,(此处的StringBuilder充当了缓存的作用)
  1. public class ForExpressionTest {
  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub
  4.                 int[] arr = new int[]{1,2,3,4,5};
  5.                 printArray(arr);
  6.                
  7.         }
  8.         public static void printArray(int[] arr){
  9.                 StringBuilder sb = new StringBuilder("");
  10.                 for(int i : arr){
  11.                         sb.append(i+",");
  12.                 }
  13.                 System.out.println(sb.substring(0, sb.length()-1));//注意substring方法取头不取尾,即从第0个字符开始取值,然后取到最后一个元素(不包含)
  14.         }
  15. }
复制代码
2.减少了程序在循环中的判断次数,提高了一点效率,如果在大批量数据中可能会看到提到的效果
3.如果使用增强型for循环的话,更能够体现出我们程序的作用,因为使用增强型for循环,我们一般只是为了取数据
希望能够帮到你

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 赵京 于 2014-5-12 23:02 编辑

这个对话框怎么写不上代码,每次写上代码,就乱码了,奇怪
回复 使用道具 举报
  增强for jdk1.5以后才出现的

格式:
                        for(类型 变量:容器){}
                        变量就是每一次迭代出来的元素。
回复 使用道具 举报
可以用增强for来遍历
  1. class Demo {
  2.         public static void main(String[] args) {
  3.                 int[] arr ={23,32,4,345454,6656,23,233,4,5,6,7};
  4.                 for (int i : arr ) {
  5.                         System.out.print(i+"  ");
  6.                 }
  7.         }
  8. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马