A simple Problem of C++

yuyuhongss 2010-01-19 11:11:52
for(int i=0;i<n;i++)
{
if(i>0 && a[i]==a[i-1])
continue;
cout<<a[i];
}


这里的continue是继续到哪里?意思就是continue执行后,i等于几?是重新等于0还是别的。
...全文
89 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
onlyliu 2010-01-19
  • 打赏
  • 举报
回复
a[i]==a[i+1]
i=6的时候a[7]有隐患。
内存存储是连续的。a[7]读取出来的是内存别的信息。有可能是乱码。代码多的话,可以引起别的问题。。
gdstcwl 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yuyuhongss 的回复:]
嗯,但是能运行呢?
[/Quote]

那要看看a[7]那个地址放的是什么值了,不同的值运行的结果会不同的.
yuyuhongss 2010-01-19
  • 打赏
  • 举报
回复
嗯,但是能运行呢?
gdstcwl 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yuyuhongss 的回复:]
C/C++ code#include<iostream>usingnamespace std;int main()
{int a[7]={2,4,5,5,5,5,7};for(int i=0;i<7;i++)
{if(i>0&& a[i]==a[i-1])continue;
cout<<a[i];
}return0;
}

不好意思,还有一个小问题,这个是去重的标准答案,网上都这样。
我改成:

C/C++ code#include<iostream>usingnamespace std;int main()
{int a[7]={2,4,5,5,5,5,7};for(int i=0;i<7;i++)
{if(a[i]==a[i+1])continue;
cout<<a[i];
}return0;
}
也能正常运行,不过有潜在隐患么?


[/Quote]

i=6的时候可能会出问题吧,因为不知道a[7]是什么
yuyuhongss 2010-01-19
  • 打赏
  • 举报
回复
#include<iostream>

using namespace std;

int main()
{
int a[7]={2,4,5,5,5,5,7};
for(int i=0;i<7;i++)
{
if(i>0 && a[i]==a[i-1])
continue;
cout<<a[i];
}
return 0;
}


不好意思,还有一个小问题,这个是去重的标准答案,网上都这样。
我改成:

#include<iostream>

using namespace std;

int main()
{
int a[7]={2,4,5,5,5,5,7};
for(int i=0;i<7;i++)
{
if(a[i]==a[i+1])
continue;
cout<<a[i];
}
return 0;
}

也能正常运行,不过有潜在隐患么?

wuchuncai 2010-01-19
  • 打赏
  • 举报
回复
无论哪种情况,必然i++.
wuchuncai 2010-01-19
  • 打赏
  • 举报
回复
1:for(int i=0;i<n;i++)
2:{
3: if(i>0 && a[i]==a[i-1])
4: continue;
5: cout<<a[i];
6:}

如果3:结果是TRUE,
执行4: continue;程序就回到1:


如果3:结果是FALSE,程序执行到5:,然后回到1:
这不是鸭头 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuyuhongss 的回复:]
那么就是如果continue了,i就要加1,再循环么?
[/Quote]
和其他的循环语句一样...
liumenghappy 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xwsn007 的回复:]
continue;表示停止本次循环(注意是本次,而不是整个for循环,后者用的是break;)即其以后的循环语句被跳过,直接再次执行i++,再判断i <n,若还满足条件,就再次执行下一次循环
[/Quote]
正解
xwsn007 2010-01-19
  • 打赏
  • 举报
回复
continue;表示停止本次循环(注意是本次,而不是整个for循环,后者用的是break;)即其以后的循环语句被跳过,直接再次执行i++,再判断i<n,若还满足条件,就再次执行下一次循环
yuyuhongss 2010-01-19
  • 打赏
  • 举报
回复
那么就是如果continue了,i就要加1,再循环么?
gdstcwl 2010-01-19
  • 打赏
  • 举报
回复
continue就是忽略掉下面的执行,继续执行下一次循环吧
碧螺春的马甲 2010-01-19
  • 打赏
  • 举报
回复
continue 后 cout<< ... 这句不执行。

跳到 i++ 和 判断 i<n 。
这不是鸭头 2010-01-19
  • 打赏
  • 举报
回复
如果符合条件直接跳出这次循环进入下次循环,即这次循环不执行cout<<a[i];

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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