版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tel13259437538/article/details/80970000
Write By Monkeyfly
以下内容均为原创,如需转载请注明出处。
前提
就在刚才,群里有人发了这样一张图片(如下图所示):
说白了就是:在张贴的租房广告中,房东将本人的联系方式以代码的形式写了出来,并且用的是java的语法。要想联系本人,肯定要知道代码本身代表的意义,即这几行代码的执行结果是什么?
问题分析
- 虽然我学过
java
,但是学艺不精,而且许久未接触,大部分已经遗忘得差不多了。 - 从语法来看,循环语句使用的是
java中foreach
的语法。 - 具体
foreach
语句怎么执行,还得去问度娘。 - 简单分析一下,
for(int i : index)
中的i
肯定不是下标。如果i
是下标的话,那么遍历arr[i]
就与数组index
中所包含的元素没什么关系了,只是纯粹的下标i
从0
依次递增,岂不是白写了那么多数字。而且arr数组
的长度也不够手机号码的位数。 - 再者说,依据生活常识来判断,手机号都是以数字
1
开头的,如果将i
看做是数组下标的话,肯定是不合理的。 - 所以,这个
i
肯定是每次遍历后,数组index
中对应的每一个元素。
下标 | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
arr数组中的元素 | 8 | 2 | 1 | 0 | 3 |
//下标
//arr数组中的元素:8,2,1,0,3
arr[2] -> 1
arr[0] -> 8
arr[3] -> 0
arr[2] -> 1
arr[4] -> 3
arr[0] -> 8
arr[1] -> 2
arr[3] -> 0
arr[2] -> 1
arr[3] -> 0
arr[3] -> 0
//应该就是这样没错了。
知识点
- 这种有冒号的
for
循环叫做foreach
循环,foreach
语句是java5
的新特征之一,在遍历数组、集合方面,foreach
为开发人员提供了极大的方便。 foreach
语句是for
语句的特殊简化版本,但是foreach
语句并不能完全取代for
语句。然而,任何的foreach
语句都可以改写为for
语句版本。foreach
并不是一个关键字,习惯上将这种特殊的for
语句格式称之为“foreach”
语句。从英文字面意思理解foreach
也就是“for 每一个”`的意思。实际上也就是这个意思。
//foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
//示例代码:
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
for (String x : list) {
System.out.println(x);
}
Object s[] = list.toArray();
for (Object x : s) {
System.out.println(x.toString()); //逐个输出数组元素的值
}
所以:
for(int i : index)
这也是遍历集合的一种方法,即将index
这个数组中的每一个元素都拿出来赋值给i
。- 用
for
循环遍历index
里的数值,将其逐个赋给i
,然后再获取arr[i]
。 //这里的index是数组,i不是下标了,i是来接受数组index遍历出来的每一个元素的值。
for (int i : index) {
}
最终结果
手机号码就是:18013820100
javascript
的写法:(如下图所示)
var arr = [8,2,1,0,3],
index = [2,0,3,2,4,0,1,3,2,3,3],
tel = "";
for(var i = 0;i < index.length;i++){
var x = index[i];
tel += arr[x];
}
console.log("联系方式:" + tel);