C++入门教程之三:控制语句
控制语句是C++语句中的一项重点内容。可以说,如果没有控制语句,C++的大厦,乃至于整个编程的大厦都无从建起。控制语句包括条件语句和循环语句,下面我来分别介绍一下。
条件语句
条件语句,又称判断语句。条件语句是用来判断给定的条件是否满足(表达式值是否为0),并根据判断的结果(真或假)决定执行的语句,选择结构就是用条件语句来实现的。
if语句
基本语法:
if(判断内容)
{
语句1;
语句2;
}
//或
if(判断内容)语句;//这种情况下判断的执行语句只能有一条
猜你也能猜出来,其使用方法是如果判断内容为真,则执行花括号中的语句;如果为假,则跳过花括号中的内容。
if、else if、else语句
基本语法:
if(判断语句1)
{
语句1;
语句2;
}
else if(判断语句2)
{
语句3;
}
else
{
语句4;
}
在这种语句结构中,先判断if中的判断语句,如果为真,则执行if语句中的内容;如果为假,则判断第一个else if的判断语句,如果为真,则执行相应else if中的语句,如果为假,则继续判断下一个else if语句的判断语句,以此类推。如果全都为假,则执行else中的语句。如果没有else语句,则直接退出这个语句。
在这种语句中,最开始的if必不可少,else最多只能有一个,else if语句可以有多个。
switch语句
基本语法:
switch(变量)
{
case 情况1:
语句1;
break;
case 情况2:
语句2;
break;
default:
语句3;
break;
}
在这种语句结构中,如果变量为情况1,则执行从case 情况1:
到break;
之间的语句,如果为情况2;则执行从case 情况2:
到break;
之间的语句,以此类推。如果变量值不是以上任何一种情况,则执行从default:
到break;
之间的语句。
变量只能为数字类型,即情况1
、情况2
只能是数字。break不可或缺。但在下面这种情况下,break必须省略:
switch(变量)
{
case 情况1:
语句1;
break;
case 情况2:
case 情况3:
语句2;
break;
default:
语句3;
break;
}
此时因为case 情况2
没有break,所以继续往下执行语句2。而case 情况3
也执行语句2,也就是说,如果你想让两种情况执行同一种语句,则需要以上面这种方式进行。
运算符形式
基本语法:
a=判断语句?数据1:数据2;
这种运算符的运算方式是:判断?
前面的判断语句是否为真,如果为真,则将数据1赋值给a;如果为假,则将数据2赋值给a。
数据1和数据2必须和变量a的数据类型相同,否则将报错或强制转换为a的数据类型。
循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。
while循环
基本语法:
while(终止条件)
{
语句1;
语句2;
}
在这种语句结构中,程序将循环执行花括号中的语句,直到终止条件为假。
do while循环
基本语法:
do
{
语句1;
语句2;
}
while(终止条件);
在这种语句结构中,程序将循环执行花括号中的语句,直到终止条件为假。
与while不同的是,do while将至少执行1次花括号中的语句,即使一上来终止条件就为假。但是while语句如果一开始终止条件就为假,则直接跳出循环。
for循环
基本语法:
for(单次表达式;条件表达式;末尾循环体)
{
语句1;
语句2;
}
在这种语句结构中,将首先执行单次表达式。单次表达式仅在开始时执行一次。然后执行条件表达式。如果为真,则执行花括号中的内容,再执行末尾循环体。三个表达式都可以省略,但分号不能省略。举个例子:
for(int i=0;i<5;i++)
cout << i << endl;
输出:
0
1
2
3
4
在这个语句中,先int i=0;
再判断i<5
如果为真,则执行cout << i << endl;
,然后执行i++
。
由此可见,for循环在需要计数的循环中十分常用。比如上面的代码用while语句写是这样的:
int i=0;
while(i<5)
{
cout << i << endl;
i++
}
显然要复杂得多。
循环语句的特殊关键字
break
break的作用是退出这个循环。
continue
continue的作用是结束本次循环,开始下一次循环。
goto关键字
基本语法:
goto 标签;
标签: 语句
goto可以充当循环语句的一种形式;比如
for(int i=0;i<4;i++)
{
cout << i << endl;
}
用goto是:
int i=0;
loop:
if(i<4)
{
cout << i << endl;
i++
}
goto loop;
显然,这种做法除了让程序更难以理解外,并没有其他意义。因为goto语句破坏了程序的完整性,让人极容易犯错,因此不建议使用goto语句。
省略花括号
花括号可以省略,但这仅限于执行内容只有一个语句的时候。比如:
if(1>2)
cout << "yes";
cout << "no";
输出:
no
if(1>2)
{
cout << "yes";
cout << "no";
}
输出:
无输出