9
回答
for(int i = 0; i < length; i++){......}此处i只能是int类型的吗?还是可以使其他类型的?为什么?
开发十年,就只剩下这套Java开发体系了   

请注明参考来源,我想知道为什么?平时我没注意这个问题。

2、var a = [];

    var a = {};

这两个的区别?

<无标签>
举报
hiqj
发帖于5年前 9回/1K+阅
共有9个答案 最后回答: 5年前

for(a; b; c)
a部分是循环开始前执行的一条语句,b部分是判断循环是否结束的,c部分是一次循环后执行的语句.
第一个问题简直不是个问题

--- 共有 1 条评论 ---
hiqj那可能是我没表述清楚,然后你没明白我问题的意思~~ 5年前 回复

++ 是算术运算.

var a = []; 这是数组 key 类型为 int

var a = {}; 这是对象 key 可以是字符串

--- 共有 2 条评论 ---
好为回复 @WQ-JAY : 可以是。 如 [] 为数组时 key 只能为int 型 否则会报错 5年前 回复
hiqj此处,数组中key类型只能为int吗?对象中也只能为字符串? 5年前 回复

循环的步长一般都是是整数,不会是小数(也不是不可能,是没必要,因为小数可以放大为整数),即使非要小数,你放大成整数不就行了。有的语言支持小数,有的则不行,没有明确标准

好比,一般程序语言里求模只能是整数(有些语言有浮点数求模),你非要求3.4除以1.2的模,可以啊,你放大为mod(34,12),结果再除以10不就成了。所以没必要非得搞个浮点数求模。

这是逻辑问题啊。

--- 共有 1 条评论 ---
hiqj嗯!这是我去面试时的一道笔试题~~我回来敲了一下发现其他数值类型也不报错~~所以就迷茫了! 5年前 回复
你的后面的问题表明你问的似乎是JS,但是你的标题却没有用JS的语法。
--- 共有 2 条评论 ---
MOsky回复 @WQ-JAY : 题目都不会好好出,随便在网上搞几道题就是笔试试卷。你就算老老实实做了,他们也不会认真看。 5年前 回复
hiqj我也觉得是JS,这是一道笔试题~ 5年前 回复

这是面试题吗?

这样我们没法解答啊,这种问题必须结合面试官提问的语境和当时你们谈论的话题啊。哪有什么标准答案啊。

“int 可以是其他类型吗?”

可不可以取决于你面试官考你的方面啊,你要说说面试官当时在和你探讨什么啊。哪有什么标准答案?

从语法的角度来说,可以是其他类型。

但是如果 i 用于遍历数组,那就不可以是其他类型。哪有标准答案?

第一个问题:

一般来说,对for解释的如下:

for(循环变量赋初值;循环条件;循环变量增值)

第一个分号前面只要求赋值,却没有对数据类型的要求,某些语言甚至可以没有这个操作。这也包括分号之后的“循环条件”和“循环变量递增”两步操作。

用代码角度来说,至少在Java中下面的代码都是合法的
for(int i = 0; i < 100; i++){...}
// 这种写法常见于文件操作
for(String data = fr.readLine(); data != null; data = fr.readLine()) {...}
for(;true;) {...} // 这是个死循环,因为循环条件恒真
//data 和 fr 可能是全局变量,for循环子的第一个部分不进行初始化也不会造成任何问题
for( ; data != null; data = fr.readLine()) {...}
for(;;)// 这也是个死循环,因为没有定义任何的循环条件,包括起始条件与结束条件
{...}

// 这依然是个死循环,因为循环条件为空,即表示不对循环条件进行判断,默认为真
for(int i = 0; ;i++){...}

// 这还是个死循环,因为没有定义递增,所以i永远为0
for(int i = 0; i < 1;){...}



参考:http://www.cnblogs.com/it-language/archive/2013/06/13/java-for.html

第二个问题,可以参考mozilla的解说:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object

顶部