注意:
在循环语句的循环条件和判断语句的判断条件的 逻辑表达式当中要对判断两个数是否相等的时候应该把常量放在等号的左边 , 因为 常量=变量 在c++语言中语法是错误的编译的时候就通不过容易发现错误, 但 变量=常量 这个是个赋值语句所以编译会通过而且只有当常量为 0 时候逻辑条件才为假.当一定要用赋值语句判断新赋值的对象的值是否为0时候,直接用 变量名=变量名 是在判断语句可能会出现混摇, 不如用 0==(变量名=变量名) 或者 0!=(变量名=变量名) 的声明
循环语句
循环语句解释:
当满足条件时:须要重复执行的操作(循环体),循环结束条件
while语句--------------------------------------
格式:
while(表达式)
{
循环体
}
特点:
先判断表达式再执行循环体
流程图:
例子:
// 实现求 1 一直加到 100 的求和算法
int i = 1, sum = 0;
while( i<101 )
{
sum += i;
i++;
}
do..while语句-----------------------------------
格式:
do
{
循环体;
}while(表达式)
特点:
先执行循环体,再判断
流程图:
//还是实现求 1 一直加到 100 的求和算法
int i = 1, sum = 0;
do
{
sum += i;
i++;
}while( i<101 );
for语句------------------------------------------
格式
for(表达式1;表达式2;表达式3)
{
循环体;
}
说明
- 表达式1:循环体赋初值(可省略)
- 表达式2:循环条件(不可省略)
- 表达式3:循环变量增值操作(可省略)
- 表达式1,3可以为简单表达式,也可以为逗号表达式
流程图:
例子:
//还是实现求 1 一直加到 100 的求和算法
int sum = 0;
for(int i=1; i<101 ; i++ )
sum += i;
跳出循环语句-------------------------------------
种类:
- break语句
- 格式: break;<用于switch与循环语句结束循环>
- continue语句
- 格式: continue;<用于循环语句结束本次循环>
例子:
// 例1 -- break的例子
int sum = 0;
for(int i=0; i<100 ; i++ )
{
if( i == 5)
break;
sum ++;
}
cout<<"the value of sum is "<<sum<<endl;
//输出结果为 5 因为在 i==5 的时候就已经跳出循环所以 sum 只自加了 5 次
// 例1 -- continue的例子
for(int i=0; i<5; i++)
{
if( i == 2)
continue;
cout<<"now, i is "<<i<<endl;
}
/***************************
输出结果为:
now, i is 0
now, i is 1
now, i is 3
now, i is 4
请按任意键继续. . .
***************************/
选择语句
if语句--------------------------------------------
格式
- if(条件表达式)
语句;
流程如图① - if(条件表达式)
语句;
else
语句;
流程如图② - if(条件表达式)
语句;
else if
语句;
else
语句; - if(条件表达式)
{
if(表达式)
语句;
}
else
语句;
注意:
当else与if的数目不一样时,可用大括号{}来确定配对关系,否则else与最近的一个配对
流程图
图① 图②
例子:
if(5>10)
cout<<"5>10 is true"<<endl;
else
cout<<"5>10 is false"<<endl;
//输出结果为: 5>10 is false
条件表达式----------------------------------------
格式:
表达式1?语句1:语句2;
说明:
当表达式为1时,执行语句1,为0时,执行语句2
流程图:
例子:
5>10? cout<<"5>10 is true"<<endl : cout<<"5>10 is false"<<endl;
//输出结果为 5>10 is false
switch语句----------------------------------------
格式:
switch(表达式)
{
case 常量表达式1:语句1;
case 常量表达式2:语句2;
…
default:语句n;
}
说明:
- ANSI允许switch的表达式为任意值类型(但是结构体,类,是不行的),还有指针是可以的
- 当表达式值与case后面常量表达式相等时,执行case后面的语句至结束或遇到break
- 若都没与case的常量表达式匹配对时,执行default语句
- 每个case常量表达式不能相等,但case语句可以相同
流程图:
例子:
switch例子:
View Code
void func(char ch)
{
switch(ch)
{
case '1':
cout<<"ch = 1"<<endl;
break;
case '2':
cout<<"ch = 2"<<endl;
break;
default:
cout<<"default"<<endl;
break;
}
}
void main()
{
func('1');
func('2');
func('a');
system("pause");
}
/**********************************
输出结果:
ch = 1
ch = 2
default
请按任意键继续. . .
**********************************/
其实switch中的表达式可以为指针的,来看个有些复杂点的例子(例子的结果和上面的例子运行结果是一样的):
void func(void* ch)
{
switch(*((char*)ch))
{
case '1':
cout<<"ch = 1"<<endl;
break;
case '2':
cout<<"ch = 2"<<endl;
break;
default:
cout<<"default"<<endl;
break;
}
}
void main()
{
char c;
void *pc = &c;
c = '1';
func(pc);
c = '2';
func(pc);
c = 'a';
func(pc);
system("pause");
}