C++ for

2018-03-24 15:59 更新

学习C++ - C++ for

以下代码显示了如何使用for循环。


#include <iostream> 
int main(){ 
     using namespace std; 
     int i;  // create a counter 
     for (i = 0; i < 5; i++) 
         cout << "C++ knows loops.\n"; 
     cout << "C++ knows when to stop.\n"; 
     return 0; 
} 

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

for循环部分

for循环提供了执行重复任务的逐步操作。

for循环的部分处理这些步骤:

  • 初始设定值
  • 执行测试以查看循环是否应该继续
  • 执行循环操作
  • 用于测试的更新值(s)

控制部分后的语句称为循环体,只要测试表达式保持为真,就执行该语句。

for (initialization; test-expression; update-expression) 
   body 

以下代码显示了如何在for循环中使用数字测试。


#include <iostream> 
using namespace std; 
int main() 
{ 
    cout << "Enter the starting countdown value: "; 
    int limit; 
    cin >> limit; 
    int i; 
    for (i = limit; i; i--)     // quits when i is 0 
         cout << "i = " << i << "\n"; 
    cout << "Done now that i = " << i << "\n"; 
    return 0; 
} 

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

注意

该程序使用一个循环来计算连续阶乘的值。

然后它使用第二个循环显示结果。此外,程序还介绍了使用外部声明的值。


#include <iostream> 
const int SIZE = 16;      // example of external declaration 
int main() 
{ 
     long long factorials[SIZE]; 
     factorials[1] = factorials[0] = 1LL; 
     for (int i = 2; i < SIZE; i++) 
          factorials[i] = i * factorials[i-1]; 
     for (int i = 0; i < SIZE; i++) 
          std::cout << i << "! = " << factorials[i] << std::endl; 
     return 0; 
} 

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

改变步长

您可以通过更改更新表达式来更改。

该程序通过用户选择的步长增加循环计数器。


#include <iostream> 
int main() 
{ 
     using std::cout;   // a using declaration 
     using std::cin; 
     using std::endl; 
     cout << "Enter an integer: "; 
     int by; 
     cin >> by; 
     cout << "Counting by " << by << "s:\n"; 
     for (int i = 0; i < 100; i = i + by) 
       cout << i << endl; 
     return 0; 
} 

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

例子

内部字符串与for循环


#include <iostream>
#include <string>
using namespace std;
int main()
{
    cout << "Enter a word: ";
    string word;
    cin >> word;

    // display letters in reverse order
    for (int i = word.size() - 1; i >= 0; i--)
        cout << word[i];
    cout << "\nBye.\n";
    return 0; 
}

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

复合语句或块

程序使用大括号将三个单独的语句组合成单个块。


#include <iostream>
using namespace std;
int main()
{
    cout << "Please enter five values:\n";
    double number;
    double sum = 0.0;
    for (int i = 1; i <= 5; i++)
    {                                   // block starts here
        cout << "Value " << i << ": ";
        cin >> number;
        sum += number;
    }                                   // block ends here
    cout << "They sum to " << sum << endl;
    cout << "and average to " << sum / 5 << ".\n";
    return 0; 
}

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

变量隐藏

如果您在块中声明与块外的其他名称相同的块中的变量,则新变量会从块内的点隐藏旧变量。

那么旧的可以再次变得可见,如下例所示:


#include <iostream> 
using std::cout; 
using std::endl; 

int main() { 
     int x = 20;   // original x 
     {   // block starts 
         cout << x << endl;  // use original x 
         int x = 100;        // new x 
         cout << x << endl;  // use new x 
     }   // block ends 
    cout << x << endl;      // use original x 
    return 0; 
} 

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

例2

以下代码显示如何反转数组。


#include <iostream> 
#include <string> 
using namespace std; 
int main() { 
     
     cout << "Enter a word: "; 
     string word; 
     cin >> word; 

     char temp; 
     int i, j; 
     for (j = 0, i = word.size() - 1; j < i; --i, ++j) 
     {                       // start block 
         temp = word[i]; 
         word[i] = word[j]; 
         word[j] = temp; 
     }                       // end block 
     cout << word << "\nDone\n"; 
     return 0; 
} 

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

例3

以下代码显示如何跳过非数字输入。


#include <iostream>
using namespace std;
const int Max = 5;
int main()
{
    int golf[Max];
    cout << "You must enter " << Max << " rounds.\n";
    int i;
    for (i = 0; i < Max; i++)
    {
        cout << "round #" << i+1 << ": ";
        while (!(cin >> golf[i])) {
            cin.clear();     // reset input
            while (cin.get() != "\n")
                continue;    // get rid of bad input
            cout << "Please enter a number: ";
        }
    }

    double total = 0.0;
    for (i = 0; i < Max; i++)
        total += golf[i];
    cout << total / Max << " = average score " << Max << " rounds\n";

    return 0; 
}

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

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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号