×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

这两种循环,你会用哪种?(只是举例,请勿追究语法)

for (iterator i = list.begin(); i != list.end(); ++i)
{
if (i == "[Somehting I want to find]")
{
break;
}
}
// Do sth with i;

========================================================

bool bFound = false;
iterator i = list.begin();
while (!bFound && (i != list.end()))
{
if (i == "[Somehting I want to find]")
{
bFound = true;
}
}

if (bFound)
{
// Do sth with i;
}

我个人很憎恶从循环中用break或return或continue。但使用while又无形中多了一个条件判断语句。没办法,天地本不全,代码也难全呀。

你们怎么看?谢谢。
Report

Replies, comments and Discussions:

  • 工作学习 / IT技术讨论 / 这两种循环,你会用哪种?(只是举例,请勿追究语法)
    for (iterator i = list.begin(); i != list.end(); ++i)
    {
    if (i == "[Somehting I want to find]")
    {
    break;
    }
    }
    // Do sth with i;

    ========================================================

    bool bFound = false;
    iterator i = list.begin();
    while (!bFound && (i != list.end()))
    {
    if (i == "[Somehting I want to find]")
    {
    bFound = true;
    }
    }

    if (bFound)
    {
    // Do sth with i;
    }

    我个人很憎恶从循环中用break或return或continue。但使用while又无形中多了一个条件判断语句。没办法,天地本不全,代码也难全呀。

    你们怎么看?谢谢。
    • 两个循环并不完全一样,第二个可能多执行些语句。怎么比较?
      • 其实我问的是倾向的问题。而且我发现我公司的人都宁愿用while,而不用for ... break (return, continue)等。
        • break谁都不喜欢.
          • 谁说的?我喜欢!:-D
    • 我觉得没有什么公司规定的话无所谓。while的语义清晰,读程序的时候也很容易,不像for。一些从其它语言转过的程序员更喜欢用do, while之类的。但for是C porgammer 的favourite。
    • 用 for 向 foreach 靠拢...
      • for 和foreach是两个不同的东西,互相之间无法替换的。所以没有谁向谁靠拢的问题。
        • 楼主的例子要做的事情是遍历一个 list,所以我建议用 foreach(尤其如果使用 c# 的话),没有 foreach 的情况下,用 for 更加接近一些。
    • 用 while 加 break 最简洁。
    • for (iterator i = list.begin(); i != "[Somehting I want to find]"&&i != list.end(); ++i);// if you really hate break
      • 你这段程序不能替代for ... break。
        • yes. it can
    • 谢谢楼上这么多位参与讨论。一丝一毫里都有学习语言精髓的地方,希望以后能多多交流。
    • Say I am old, say I am stupid. But add this, "for break" is my choise.
      • I don't think it's wrong to use for...break. But just to be on the safe side, try to avoid using it. Plus, Some company would consider you don't know C++ if you use for...break.
        • I don't know C++?? Who cares, it's not a programming language any ways.
    • 个人认为:FOR 适合与写程序的,简单方便。WHILE 适合与读程序和测试的,条理清晰完整。
    • 我觉得break, continue挺好的,但是在程序中间我基本不用return,保持一个方法里面只有一个return(一个程序出口)可读性会好些.
      • 相反,我尽量多用RETURN,在FUNCTION中如果发现可以RETURN我就立刻回,免得执行后面的语句,特别是进行数据检索需要调用FUNCTION,我认为可以少执行一些不必要的判断
    • NO break! Breaks broke my broken heart again.