佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 977|回复: 5

C Programming For Loop 问题

[复制链接]
发表于 16-4-2006 01:19 AM | 显示全部楼层 |阅读模式
请问
--> for(;; )
是代表什么??
为什么里面不用写value 和 condition 的??



那时不是代表 其实  for(;; ) 的意思是一直无止境的looping ?? 而condition 是由loop 里面来做??
所以只是纯粹的looping 吗??

[ 本帖最后由 zuying1985 于 16-4-2006 01:22 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 16-4-2006 01:57 AM | 显示全部楼层
exp:
       1    2     4
for ( x=1 ;X>10; x++){
       3
   condition
}

红字代表他的次序
当第二步拿到false是就会跳出for loop
回复

使用道具 举报

 楼主| 发表于 16-4-2006 03:31 AM | 显示全部楼层
原帖由 winnerT_T 于 16-4-2006 01:57 AM 发表
exp:
       1    2     4
for ( x=1 ;X>10; x++){
       3
   condition
}

红字代表他的次序
当第二步拿到false是 ...



这些我知道。。 我想问的是 --> for(;; ) 代表了什么?

for exp:

for (;; )
{
    if ( a == - 1)
        return 0;
    else
       ..............
}

那个for loop 的责任是不是就只是纯粹的loop .. 并没有Initialized value , condition 和 increment value 的。。 就只负责looping 而已。。 对吗?
回复

使用道具 举报

发表于 16-4-2006 03:43 AM | 显示全部楼层
原帖由 zuying1985 于 16-4-2006 03:31 AM 发表



这些我知道。。 我想问的是 --> for(;; ) 代表了什么?

for exp:

for (;; )
{
    if ( a == - 1)
        return 0;
    else
       ..............
}

那个for loop 的责任是不是就只是 ...


对。只是一个infinite loop罢了。
这个loop你要来做什么?
回复

使用道具 举报

 楼主| 发表于 16-4-2006 03:58 AM | 显示全部楼层
原帖由 BillGates 于 16-4-2006 03:43 AM 发表


对。只是一个infinite loop罢了。
这个loop你要来做什么?


其实只是拿来做一个类似do while 的东西。。。。我也是看会两年多前老师给我的一个random number guess game 的 code .. 看到这个 for(;; ) lo.. 因为我有朋友需要用到。。 我就看会去看下还记得没有。。 在解释给我朋友听咯。。
回复

使用道具 举报

发表于 16-4-2006 03:06 PM | 显示全部楼层
原帖由 zuying1985 于 16-4-2006 03:58 AM 发表


其实只是拿来做一个类似do while 的东西。。。。我也是看会两年多前老师给我的一个random number guess game 的 code .. 看到这个 for(;; ) lo.. 因为我有朋友需要用到。。 我就看会去看下还记得没有。。 在解 ...


for(;; )
{

}

while(1)
{

}

do
{

}while(1);

以上都是无止境的循环(infinite loop),只有 break 能够离开。通常用于有多种condition 的情况之下,而不是一个简单的 for statament 可define 的,比如,

int cnt1,cnt2,cnt3;
for(cnt1=0,cnt2=0,cnt3=0; (cnt1<10 && cnt2<20 && cnt3<30);cnt1++,cnt2++,cnt3++)
{
   //do something...
}

像以上的例子要定义它的condition就很难了。通常我都会,

for(;; )
{
  if (cnt1<10)
  {
     //do something..
  }
  else break;

  if (cnt2<20)
  {
     //do something..
  }
  else break;

  if (cnt3<30)
  {
     //do something..
  }
  else break;

  //do increment..
  ..
  ..
  cnt1++;
  ..
  ..
  cnt2++;
  ..
  ..
  cnt3++;
}

另外我也喜欢用for(;; ){} 在多线程(multithreading)里的 worker thread。这要看个的喜好与编程的设计了。

[ 本帖最后由 Sunyata 于 16-4-2006 03:08 PM 编辑 ]
回复

使用道具 举报

Follow Us
您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 11-11-2024 07:27 PM , Processed in 0.120149 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表