| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1591 人关注过本帖
标题:有关数组语法糖的问题(新手求指教)
只看楼主 加入收藏
听闻
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-10-19
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:3 
有关数组语法糖的问题(新手求指教)
package test;
public class test1 {
   
         public static int[] varSum(int...v){

              int[] r = {v.length,0};     

              for(int n:v) {
                  
                 r[1] = r[1]+n;
              };

              return r;   }
         public static void main(String[] args) {

              int[] a = varSum(1, 2, 3, 4);   

              System.out.printf("len=%d,sum=%d", a[0], a[1]);

           }
}

求指教 (1)int[] r = {v.length,0};是什么意思;
        (2)  System.out.printf("len=%d,sum=%d", a[0], a[1]);是怎么一个工作原理,例如将a[0]换成a[3]程序会报错;
特别感谢大家能详细的告诉我,如果知道的话(
   谢谢大家)坐等。。。
搜索更多相关主题的帖子: 数组 语法 public int printf 
2017-10-30 19:04
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
收藏
得分:15 
int[] r = {v.length,0};
普通的数组初始化,v.length计算结果就是一个int类型

System.out.printf("len=%d,sum=%d", a[0], a[1]);
做格式化输出用的,这个跟C语言里面的printf比较类似
2017-10-30 19:42
听闻
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-10-19
收藏
得分:0 
是将v.length的的值作为该数组的长度吗?而那个零是怎么回事,是如何赋值的。可以说清楚一点吗?
我知道是格式化输出,但是不知道为什么是leng=a[0],sum=a[1]
2017-11-02 21:04
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
收藏
得分:0 
你看那个varSum方法,数组r里面,第一个元素(r[0])存放的传入的数据v的长度
数组r的第二个元素(r[1]),用来存放累加的结果,初始化为0
int[] r = {v.length,0};这个相当于
---------
int[] r = new int[2];
r[0] = v.length;
r[1] = 0;
---------
其中r[1]会在下面的循环进行累加,最终就会是累加结果
2017-11-03 11:29
快速回复:有关数组语法糖的问题(新手求指教)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017534 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved