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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 北极£莜蓝 中级黑马   /  2014-6-10 23:24  /  1241 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组遍历 int[] arr = {98,23,16,35,72}; 写一个对象数组操作的功能,实现把数组中的数据按照如下格式返回:
         * "[98, 23, 16, 35, 72]"
         */
        public static String printArray(int[] arr) {
                String s = "";
                for (int i = 0; i < arr.length; i++) {
                        if (i == arr.length - 1) {
                                s += arr[i];
                               
                        }
                        else
                                s += arr[i] + ",";
                }
                return "[" + s + "]";

        }
如果不加else 输出结果是:"[98, 23, 16, 35, 7272]",求解for循环里if 和else如何是好

8 个回复

倒序浏览
我自己总结是如果条件有交集的话还是加上else .条件没有交集的话就不用加else,感觉不是太形象
回复 使用道具 举报
不加else结果应是[98, 23, 16, 35, 7272,]没有else    s += arr[i] + ",";语句的执行不在控制之内。
回复 使用道具 举报
s += arr[i] + ",";这句代码  不管是否满足if语句,都会执行,当循环到最后一个元素时,这句代码不需要执行,所以要加else语句,看是否执行这句代码。我感觉判断用不用else要看这句代码是否有时执行,有时不执行。
回复 使用道具 举报
  1. public static void print(int[] arr) {
  2.                 // 为了格式,首先打印一个中括号
  3.                 System.out.print("[");
  4.                 // 循环走起来~
  5.                 for (int i = 0; i < arr.length; i++) {
  6.                         // 判断一下
  7.                         // 这里判断,无非就是不想让数组最后一个元素后面多出来一个逗号而已
  8.                         if (i == arr.length - 1)//若是if下面只有一条语句,那么我们可以省略大括号
  9.                                 System.out.println(arr[i] + "]");
  10.                         System.out.print(arr[i] + ",");
  11.                 }
  12.         }
复制代码


少侠,还有什么疑问么
回复 使用道具 举报
love~陌 发表于 2014-6-10 23:59
少侠,还有什么疑问么

巧妙的避开了重点,if语句下面的else省略后,该语句就相当于是一个普通的语句了,当if的判断结构执行完后.要顺序执行下一个语句.而加上else语句后.if与else语句中二选一,当表达式为真时,执行 执行语句.表达式为假,执行else语句,
回复 使用道具 举报
love~陌 发表于 2014-6-10 23:59
少侠,还有什么疑问么

辛苦了.感谢大神...交个朋友.:#
回复 使用道具 举报
那要看if语句执行后,后面的语句还需不需要只执行一次。
回复 使用道具 举报
你这代码写的好没阅读性啊{:2_40:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马