当前位置:  开发笔记 > 编程语言 > 正文

最优雅的循环构造?

如何解决《最优雅的循环构造?》经验,为你挑选了4个好方法。

对不起,对于新问题.我还在学习编程.所以我使用C++,我需要做这样的事情:

int n;
do {
    n = get_data();
    if(n != -1)
        send(n);
} while(n != -1);

这只是一个草图.无论如何,它感觉不到真正的优雅.我必须进行两次测试.我可以只测试一次并设置一个标志,但由于我必须两次检查标志,所以感觉并不真实.似乎应该有一种方法可以更容易地做到这一点,因为它很容易做我想做的事情.



1> Eugene Yokot..:
int n;
while (-1 != (n = get_data())) {
    send(n);
} // while


当人们将常数放在比较的左侧时,我鄙视.
您将常量放在左侧,这样当您意外地将==或!=更改为赋值运算符(=)时,它就是编译器错误.在大多数现代语言中,这不再是问题,特别是对于现代IDE.我仍然使用C++代码.
就个人而言,我发现SCFrench更容易阅读.

2> SCFrench..:

与eed3si9n类似,但可以说更容易理解:

 int n;
 while (n = get_data(), n != -1)
 {
     send(n);
 }



3> Charlie..:

怎么用break:

int n;
while(1) {
    n = get_data();
    if(n == -1)
        break;
    send(n);
}

这样您只需测试一次,如果get_data没有返回您想要的内容,则立即退出.



4> Jonathan..:
for (int n = get_data(); n != -1; n = get_data()) {
  send(n);
}

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有