求几行程序的解释

cainiao_learn 2012-07-03 09:51:19
如题,想问一下,循环体里面几行赋值和判断语句有什么作用,可以简化成其他语句吗

for ( i= 0; i<5; ++i )
{
if ( a[i] == -1 )
continue;
a[i]=0;

... ... // 与a[i]无关的语句

if(a[i]==0)
a[i]=-1;

}
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
逆道而行 2012-07-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

a数组是一系列标记,值为-1的代表被某种处理工程处理过了,所以就是:等于-1继续下一个循环,否则就处理然之后标记为-1。可以直接在最后写a[i]=-1;
应该会有和a数组相关联的另外一个数据结构。
[/Quote]

这个程序的确可以简化,程序的原意应该是这样的:
for ( i= 0; i<5; ++i )
{
if ( a[i].value == -1 )
continue; //如果标记项a[i].value 为-1,表示这信息处理过,不再对其进行处理,跳过余下代 码,执行下一个循环,如果不为-1,表示未处理过,不会执行continue;,执行余下代码,对此信息进行处理

a[i].value=0; //对标记项重新赋值为0,表示对信息开始进行处理

... ... // 与有关的语句,对a[i].x做的一些处理

if(a[i].value==0) //处理完成,重新设置标记项为-1
a[i].value=-1;

}
cainiao_learn 2012-07-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

a数组是一系列标记,值为-1的代表被某种处理工程处理过了,所以就是:等于-1继续下一个循环,否则就处理然之后标记为-1。可以直接在最后写a[i]=-1;
应该会有和a数组相关联的另外一个数据结构。
[/Quote]


其实,原本的程序类似是这样的。
for ( i= 0; i<5; ++i )
{
if ( a[i].value == -1 )
continue;
a[i].value=0;

... ... // 与有关的语句,对a[i].x做的一些处理

if(a[i].value==0)
a[i].value=-1;

}

那么,我应该可以改成这样的吧?
for ( i= 0; i<5; ++i )
{
if ( a[i].value == -1 )
continue;
... ... // 与a[i].x有关的语句

a[i].value=-1;

}
nanjun520 2012-07-03
  • 打赏
  • 举报
回复
应该是利用数字a[]来判断 一些操作是否已经处理的标志。
比如a[i]==-1就表示已经处理 所以就直接continue;

如果不是-1就赋值为0 接下来就是进行一些操作,操作完成之后 就把a[i]的值赋值为-1,这样

当下次进入这个for循环的时候刚才已经处理的a[i]就不会处理了。


应该可以简化,要看你具体的需求了!
hard9999 2012-07-03
  • 打赏
  • 举报
回复
a数组是一系列标记,值为-1的代表被某种处理工程处理过了,所以就是:等于-1继续下一个循环,否则就处理然之后标记为-1。可以直接在最后写a[i]=-1;
应该会有和a数组相关联的另外一个数据结构。


33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧