C++学习 之 控制程序流程 (笔记)
1.使用if...else有条件的执行
在一些时候语句需要进行有条件的执行。比如如果输入"Y"就执行赋值语句N=1;否则N=0:
#include<iostream>
using namespace std;
int main ()
{
char Judge='N';
int N;
cin>>Judge;
if(Judge=='Y')
{
N=;
}//if条件下一条语句时{}可省略,此处给出
else
{
N=;
}
cout<<N<<endl;
return ;
}
if...else是可以嵌套使用的,下面例出一个模板:
if(expression1)
{
DoSomething;
if(expression2)
DoSomething2;
else
DoSomethingElse2;
}
else
{
DoSomething;
if(expression3)
DoSomething3;
}
2.使用switch...case进行条件处理
switch...case语法结构如下:
switch(expression)
{
case LabelA:
DoSomethingA;
break;
case LabelB:
DoSomethingB;
break;
default:
break;
}
其语法就是计算expression的值并与case的标签对比,如果值相同就执行该case下的语句,不相同就与下一个标签作比较直至到也没有相同的就执行default正常退出。
下面给出输入阿拉伯数字1~5给出相应的希腊数字的代码示例;
int Input_N;
cin>>Iput_N;
switch(Input_N)
{
case 1:
cout<<"I"<<endl;
break;
case 2:
cout<<"II"<<endl;
break;
case 3:
cout<<"III"<<endl;
break;
case 4:
cout<<"IV"<<endl;
break;
case 5:
cout<<"V"<<endl;
break;
default:
break;
}
3. ?:条件运算符
expression ?: expression1:expression2;
问号前表达式成立则选择计算expression1否则选择计算expression2。
使用条件运算符?:选出两个数之间最大的一个:
int Number1=,Number2=;
cin>>Number1;
cin>>Number2;
int Max;
Max=(Number1>Number2)?Number1:Number2;
cout<<Max<<endl;
4. while循环
while循环语法结构如下:
while(expression)
{
StatementBlock;
}
只要expression为true,就将执行该语句块,所以在循环过程中会出现expression为false的情况,否则循环很有可能永不停息的执行下去。
5. do while循环
do while循环与while的循环的区别在于是否在执行语句前进行了条件判断,do while循环保证了代码块语句至少被执行一次。
do while循环语法结构如下:
do
{
StatementBlock;
}while(expression);
注意:while循环和do...while的区别源自于编译器的顺序编译,do...while是有句末分号的。
6. for循环
for语句是一种更加复杂的循环,它允许我们指定执行一次的初始化语句(通常用来初始化计数器),判断退出条件(通常使用计数器),还可以在循环末尾执行一次操作(通常为计数器累加操作)。
例如循环为数组输入输出各值的代码:
int i, a[4];
for (i = 0; i < 4; i++)//初始化语句,检查退出条件语句,计数器累加操作语句
{
cin >> a[i];
}
for (i = 0;i < 4; i++)
{
cout <<"第"<< i + 1 << "个数: "<<a[i] << endl;
}
注意:for语句中初始化语句、条件语句、操作语句都是根据需要可选的。
7. continue 和 break
while ,do...while 和 for循环都会有条件语句,如果条件为假就跳出循环,如果条件一直为真就会一直循环就是死循环。在很多时候死循环会导致程序崩溃,这是我们不期望发生的事情,而使用break
和continue就可以修改循环行为,包括死循环。我们可以给循环一个条件使其使用break跳出循环,continue会使执行跳到循环开头,重新评估循环条件。
注意:尽量不要使用break或continue,因为它们影响代码直观性,除非遇到不使用它们程序就无法正确或高效的运行的情况。
最新文章
- 【bzoj1708】[USACO2007 Oct]Money奶牛的硬币
- oracle学习笔记
- HOJ 1004: Prime Palindromes
- Redis3.0.1 Stable版本的集群部署(Mac)
- Codeforces Round #251 (Div. 2) B. Devu, the Dumb Guy
- RC上电复位时间计算
- 暴力清除Android中的短信
- 怎么利用WinPE恢复系统注册表?
- Gulp实战(二)
- CentOS、Ubuntu、Debian三个linux比较异同
- Arduino周边模块:LED部件
- 表单提交复选框(checkbox)注意事项
- Leetcode题解(七)
- CodeForces 912d fishes(优先队列+期望)
- [洛谷P1417 烹调方案]贪心+dp
- ThinkPHP 3.1.2 视图 MVC-V -5
- openstack(Pike 版)集群部署(二)--- Keystone 部署
- 使用erlang实现简单的二进制通信协议
- ES6 三层for循环的链式写法
- [转载]DotNetty 学习