C++ while循环

2018-03-24 16:35 更新

学习C++ - C++ while循环

while循环是初始化和更新部分的for循环;它只是一个测试条件和主体:

while (test-condition) 
   body 

如果表达式计算结果为true,程序将执行正文中的语句。

以下代码显示了如何使用while循环读取用户输入。


#include <iostream>
int main()
{
    using namespace std;
    char ch;
    int count = 0;      // use basic input
    cout << "Enter characters; enter # to quit:\n";
    cin >> ch;          // get a character
    while (ch != "#")   // test the character
    {
        cout << ch;     // echo the character
        ++count;        // count the character
        cin >> ch;      // get the next character
    }
    cout << endl << count << " characters read\n";
    return 0; 
}

上面的代码生成以下结果。

例子

以下循环遍历字符串中的每个字符,并显示字符及其ASCII代码。


#include <iostream>
const int ArSize = 20;
int main()
{
    using namespace std;
    char name[ArSize];

    cout << "Your first name, please: ";
    cin >> name;
    cout << "Here is your name, verticalized and ASCIIized:\n";
    int i = 0;                  // start at beginning of string
    while (name[i] != "\0")     // process to end of string
    {
        cout << name[i] << ": " << int(name[i]) << endl;
        i++;               
    }
    return 0; 
}

上面的代码生成以下结果。

例2

以下代码代码显示如何使用clock()和ctime头来创建延时循环。


#include <iostream>
#include <ctime> // for clock() function, clock_t type
int main()
{
    using namespace std;
    cout << "Enter the delay time, in seconds: ";
    float secs;
    cin >> secs;
    clock_t delay = secs * CLOCKS_PER_SEC;  // convert to clock ticks
    cout << "starting\a\n";
    clock_t start = clock();
    while (clock() - start < delay )        // wait until time elapses
        ;                                   // note the semicolon
    cout << "done \a\n";
    return 0; 
}

上面的代码生成以下结果。

读数循环

以下代码使用一个循环,如果数组已满,或者输入非数字输入则终止该循环。


#include <iostream>
using namespace std;
const int Max = 5;
int main()
{
    double fish[Max];
    cout << "You can enter up to " << Max
            << " numbers <q to terminate>.\n";
    cout << "fish #1: ";
    int i = 0;
    while (i < Max && cin >> fish[i]) {
        if (++i < Max)
            cout << "#" << i+1 << ": ";
    }
    double total = 0.0;
    for (int j = 0; j < i; j++)
        total += fish[j];
    if (i == 0)
        cout << "No value\n";
    else
        cout << total / i << " = average of " << i << "\n";
    return 0; 
}

上面的代码生成以下结果。

do while循环

do while循环与其他两个不同,因为它是一个退出条件循环。

如果条件评估为false,则循环终止;否则,开始执行和测试的新循环。

这样的循环总是执行至少一次。

以下是do while循环的语法:

do 
  body 
while (test-expression); 

主体部分可以是单个语句或大括号分隔的语句块。


#include <iostream> 
using namespace std; 
int main() { 
     int n; 

     cout << "Enter numbers in the range 1-10 to find "; 
     cout << "my favorite number\n"; 
     do 
     { 
          cin >> n;       // execute body 
     } while (n != 7);   // then test 
     cout << "Yes, 7 is my favorite.\n" ; 
     return 0; 
} 

上面的代码生成以下结果。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号