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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luheqi 中级黑马   /  2014-6-30 19:50  /  941 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

循环控制语句主要有while语句、 for语句。但是大家有没有想过while语句能实现的语句,for一定也能实现,为什么还保留while语句呢?
是不是还有某些情形是for语句不能实现的?请各位指教。

8 个回复

倒序浏览
明确知道循环次数的时候可以使用for循环,比如说遍历数组中的元素
while循环多用于逻辑判断,用在循环次数不明确的时候。
回复 使用道具 举报
ソi苆僞lè袮 发表于 2014-6-30 20:23
明确知道循环次数的时候可以使用for循环,比如说遍历数组中的元素
while循环多用于逻辑判断,用在循环次数 ...

请举一个不能用for而只能用while的反例。
回复 使用道具 举报
luheqi 发表于 2014-6-30 20:42
请举一个不能用for而只能用while的反例。

for的循环变量更新表达式是写死的,没法改。随便想了个例子,for循环应该是做不到的,但不一定有实际用
  1. // 下面假定数组a是一个含有100个元素的int数组
  2. int i = 0, sum = 0;
  3. while(i < 100)
  4. {
  5.     sum += a[i];
  6.     if(sum > 30)
  7.         i += 2;
  8.     else
  9.         i++;
  10. }
复制代码
回复 使用道具 举报
luheqi 发表于 2014-6-30 20:42
请举一个不能用for而只能用while的反例。

这个。。。比如在连接数据库的时候,并不知道数据库中有多少条数据

            
就用while(rs.next()){   ....
        }
回复 使用道具 举报
for循环里一般涉及的是局部变量;while循环里一般涉及的是全局变量。
回复 使用道具 举报
luheqi 中级黑马 2014-6-30 23:08:20
7#
ソi苆僞lè袮 发表于 2014-6-30 21:41
这个。。。比如在连接数据库的时候,并不知道数据库中有多少条数据

            

for(  ; rs.next();   ){...
}  可以代替吧
回复 使用道具 举报
luheqi 发表于 2014-6-30 23:08
for(  ; rs.next();   ){...
}  可以代替吧

是哦,又学了一招:lol知识有限,只能想到这里了
回复 使用道具 举报
for一般用于循环次数确定的循环,while则用于逻辑判断的循环,一般循环次数是不知道的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马