C++程序流程控制
零概述 编程的核心在于处理数据,即玩转数据,如何操控数据,涉及到程序的流程控制,就像是走路一样,选择哪一条路才能更方便的走到目的地是一门技术活,程序中的流程控制就是指引数据最终走到目的地。C++提供了三种程序流程:顺序结构、选择结构和循环结构,下面依次讲解这三种程序控制结构。壹顺序结构 从程序语句的执行来看,顺序结构是逐行执行语句,一直执行到程序结束,不走回头路。本系列帖子之前的大部分程序都是顺序结构。#include <iostream>#include<string>using namespace std;int main(){ cout << "这是程序的第七行" << endl; cout << "这是程序的第九行" << endl; cout << "这是程序的第十一行" << endl; system("pause"); return 0;} 上面的程序会依次输出这是程序的第七行这是程序的第九行这是程序的第十一行 这就是顺序执行结构,一根直肠子,一杆子捅到底,不跳过任何语句,下面就开始有花花肠子了。贰选择结构 选择结构,顾名思义,就是依据数据选择性的执行一些语句,这就意味着有些语句是会被跳过的#include <iostream>#include<string>using namespace std;int main(){ float a = 0; cout << "Please input your data:\t" << endl; cin >> a; if (a > 600){ cout << "你的分数在600以上" << endl; } else if (500 < a && a < 600){ cout << "你的分数在500~600" << endl; } else if (a < 500){ cout << "你的分数在500以下" << endl; } system("pause"); return 0;} 上面的程序依据输入的分数而选择性的执行一些数据,如果输入的数据是1000,则会有以下输出Please input your data:10000你的分数在600以上 如果输入的数据是1,则会有以下输出Please input your data:1你的分数在500以下 下面介绍switch语句,这种选择结构根据一个整型数值或者一个字符执行一些语句,下面的程序根据输入的分数判断电影的质量#include <iostream>#include<string>using namespace std;int main() { //请给电影评分 //10 ~ 9 经典 // 8 ~ 7 非常好 // 6 ~ 5 一般 // 5分以下 烂片 int score = 0; cout << "请给电影打分" << endl; cin >> score; switch (score) { case 10: case 9: cout << "经典" << endl; break; case 8: cout << "非常好" << endl; break; case 7: case 6: cout << "一般" << endl; break; default: cout << "烂片" << endl; break; } system("pause"); return 0;} 如果输入的是10,输出如下请给电影打分10经典 以上是选择结构,需要注意的是,switch选择结构中,case后面的只能是整型数据和单个字符;并且程序中一定要有break语句,不然会顺序执行所有程序。下面介绍循环结构,这就能完成更加复杂的功能了。叁循环结构 循环结构有好几种,首先介绍for型循环,for型循环的语句为for(起始表达式;条件表达式;末尾循环体){\\程序语句} 下面以一个输出9*9乘法表的程序为例讲解#include <iostream>#include<string>using namespace std;int main() { int i = 0; int ii = 0; for (i = 1; i < 10; i++){ for (ii = 1; ii <= i; ii++){ if (ii == i){ cout << "\t" << i << "*" << ii << "=" << i*ii << endl; } else{ cout <<"\t"<< i<<"*"<<ii<<"=" << i*ii; } } } system("pause"); return 0;} 下面是输出的结果 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 上面的程序设置了两层循环,第一层循环决定了乘法表中第几行数据,第二层循环决定了每一行输出的终止位置注意for语句后面的括号(ii = 1; ii <= i; ii++) 这里的意思是,当ii大于i时候,跳出循环,在每一次循环中ii递增1;如果我们想要反向输出乘法表呢,即第一行输出九个数字,那么我们只需要修改for循环中的语句为 for (i = 9; i >=1; i--){ for (ii = i; ii >=1; ii--){ if (ii == 1){ cout << "\t" << i << "*" << ii << "=" << i*ii << endl; } else{ cout << "\t" << i << "*" << ii << "=" << i*ii; } } } 输出的结果就变成 9*9=81 9*8=72 9*7=63 9*6=54 9*5=45 9*4=36 9*3=27 9*2=18 9*1=9 8*8=64 8*7=56 8*6=48 8*5=40 8*4=32 8*3=24 8*2=16 8*1=8 7*7=49 7*6=42 7*5=35 7*4=28 7*3=21 7*2=14 7*1=7 6*6=36 6*5=30 6*4=24 6*3=18 6*2=12 6*1=6 5*5=25 5*4=20 5*3=15 5*2=10 5*1=5 4*4=16 4*3=12 4*2=8 4*1=4 3*3=9 3*2=6 3*1=3 2*2=4 2*1=2 1*1=1 循环结构中还有do...while循环,当满足某种条件时候,循环开始执行,如#include <iostream>#include<string>using namespace std;int main() { int a = 0; do { cout << "输入一个x小于10的数字,不然会一直输出这一句话!" << endl; cin >> a; } while (a > 10); system("pause"); return 0;} 当while语句后括号的值为1时候,程序会一直执行do后括号内的内容,当输入的数字小于10的时候,循环结束,如输入一个小于10的数字,不然会一直输出这一句话!22输入一个小于10的数字,不然会一直输出这一句话!33输入一个小于10的数字,不然会一直输出这一句话!888输入一个小于10的数字,不然会一直输出这一句话!1 以上就是C++中经常使用的程序控制结构。 来源:有限元先生