本文介绍了是否有过需要一个"做好{...}而()"循环?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Bjarne的Stroustrup的(C ++创建者)曾经说过,他避免了做/而循环,prefers写code在while循环的角度来代替。 [参见下面的报价。]

由于听到这话,我发现这是真的。你怎么看?有一个例子,其中一个做/而更干净,更容易比你用来理解,而呢?

在回应一些问题的答案:是的,我明白了做/而和,而之间的技术差异。这是关于可读性和结构code,涉及循环一个更深层次的问题。

让我问另一种方式:假设你正在使用做/而禁 - 有一个现实的例子,这将给你别无选择,只能使用,而

写不洁code?

从C ++程序设计语言,6.3.3:

解决方案

Yes I agree that do while loops can be rewritten to a while loop, however I disagree that always using a while loop is better. do while always get run at least once and that is a very useful property (most typical example being input checking (from keyboard))

#include <stdio.h>

int main() {
    char c;

    do {
        printf("enter a number");
        scanf("%c", &c);

    } while (c < '0' ||  c > '9');
}

This can of course be rewritten to a while loop, but this is usually viewed as a much more elegant solution.

这篇关于是否有过需要一个&QUOT;做好{...}而()&QUOT;循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 02:06