分享
 
 
 

C++语言基础(2)

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

if语句

if语句用于测试条件并在条件为真时执行一桌或几条语句。

说明:if表达式后面不能带分号,否则它本身表示代码中的空语句,使编译器将空语句解释为在条件为真时执行的语句。

if (x == 10); // Warning! Extra semicolon!

DoSomething(x);

这里DoSomething()函数总会执行,因为编译器不把它看成在条件为真时执行的第一条语句。由于这个代码完全合法(但无用),所以编译器无法发出警告。

假设要在条件为真时执行多行语句,则要将这些语句放在大括号内:

if (x > 10) {

cout << "The number is greater than 10" << end1;

DoSomethingWithNumber(x);

}

条件表达式求值为false时,与if语句相关联的码段忽略,程序继续执行该码段之后的第一条语句。

说明 :

C++中包含许多快捷方法,其中一个是用变量名测试true,例如:

if (fileGood) ReadData();

这个方法是下列语句的速写方法:

if (fileGood == true) ReadData();

本例用了bool变量,也可以用其它数据类型。只要变量包含非零数值,表达式即求值为true,对变量名加上逻辑非(!)操作符可以测试false值:

bool fileGood = OpenSomeFile();

if (!fileGood) ReportError();

学会C++快捷方法有助于写出更出色的代码。 有时要在条件表达式求值为true时进行某个动作,在条件表达式求值为false时进行另一动作,这时可以用else语句如下:

if (x == 20) {DoSomething(x);}

else {DoADifferentThing(x);}

新术语

else语句和if语句一起使用,表示if语句失败时(即在条件表达式求值为false时)执行的码段。

if语句形式之二:

if (cond_eXPr_1) {

true_statements_1;

}

else if (cond_expr_2)

{ true_statements_2; }

else {

false_statements;

}

假如条件表达式cond_expr为1真(非零),则执行true_statements1码段;假如条件表达式cond_expr为1为假而假如条件表达式cond_expr为2真(非零),则执行true_statements 2码段;假如两个表达式均为假,执行false_statements码段。

--------------------------------

使 用 循 环

循环是所有编程语言共同的要素。循环可用于对数组重复,对某个动作重复进行指定次数,从磁盘中读取文件,等等。

循环有:for循环、while循环和do while循环。

这几个循环基本相同,所有循环都有下列共同要素:

· 起点

· 循环体,通常放在大括号内,包含每次循环要执行的语句

· 终点

· 确定循环终止的测试条件

· 可选使用break和continue语句

for循环是最常用的循环,取三个参数:起始数,测试条件和增量表达式。

for循环语句:

for(initial; cond_expr;adjust)

{ statements;

}

for循环重复执行statements码段,直到条件表达式cond_expr不为真。循环状态由initial语句初始化,执行statements码段后,这个状态用adjust语句修改。下面举一个for循环的典型例子进行说明:

for (int i=0;i<10;i++){

cout << "This is iteration" << i << end1;

}

while循环与for循环的差别在于它只有一个在每次循环开始时检查的测试条件。只要测试条件为true,循环就继续运行。

int x;

while (x < 1000) {

x = DoSomeCalculation();

}

本例中我调用一个函数,假定它最终会返回大于或等于1000的值。只要这个函数的返回值小于1000,while循环就继续运行。变量x包含大于或等于1000的值时,测试条件变成false,程序转入while循环闭括号后面的第一条语句。while循环通常用bool变量进行测试。测试变量状态可以在循环体中进行设置:

bool done = false;

while (!done) {

//some code here

done = SomeFunctionReturningABool();

//more code

}

do while循环与while循环基本相同,但有两点差别。

,while循环测试发生在循环体开头,而do while循环测试则发生在循环结束时:bool done = false;

do {

// some code

done =SomeFunctionReturningABool();

// more code

} while (! done);

使用dowhile循环还是while循环取决于循环本身的作用。语法中do while循环语句:do {

tatements;

} while (cond_expr);

只要条件表达式cond_expr为真(非零),do循环重复statements码段。循环状态必须在do语句之前初始化,并在码段中显式修改。条件表达式cond_expr为假时,循环终止。

goto语句可以将程序转入前面用标号和冒号声明的标号处。

下列代码演示了这个语句:

bool done = false;

startPoint:

// do some stuff

if (!done) goto(startPoint);// loop over, moving on...

这里不需要大括号,因为goto语句与标号之间的所有代码均会执行。

goto语句被认为是C++程序中的不良语句。用goto语句能做的任何工作都可以用While和dowhile循环进行。一个好的C++编程人员很少在程序中使用goto语句。假如你从别的语言转入C++,你会发现C++的基本结构使goto语句显得多余。

循环中有两个要害字必须介绍,那就是控制循环中程序执行的continue和break。continue语句强制程序转入循环底部,跳过continue语句之后的任何语句。例如,某个测试为真时,循环的某个部分可能不需要执行。这时可以用continue语句跳过continue语句之后的任何语句:

bool done = false;

while (!done) {

// some codebool error =SomeFunction();

if (error) continue;

// jumps to the top of the loop

// other code that will execute only if no error occurred

}

break语句用于在循环正常测试条件符合之前终止循环执行。例如,可以在ints数组中搜索某个元素,找到数字后可以终止循环执行,取得该数字所在的索引位置:

int index=1

int searchNumber=50;

for (int i=0;i<numElements;i++) {

if (myArray[i]==searchNumber) {

index=i;break;}

}

if(index !=1)

cout << "Number found at index " << index << end1;

else

cout <<"Number not found in array." << end1;

continue和break语句在许多情况下有用。和其它要介绍的知识一样,continue和break语句也要在实践中不断熟悉。

switch语句是高级if语句,可以根据表达式的结果执行几个码段之一。表达式可以是变量、函数调用结果或其它有效C++表达式。下面举一个switch语句例子:switch (amountOverSpeedLimit) {

case 0 :

{fine =0;

break;

}

case 10 :

{fine = 20;

break;

}

case 15 :

{fine =20;

break;

}

case 20 :

case 25 :

case 30 :

fine=amountOverSpeedLimit * 10;

break;

}

default :

{fine =GoToCourt();

jailTime=GetSentence();

}

}

switch语句分为几个部分。首先有一个表达式,本例中是amountOverSpeedLimit变量(够长的变量名!),然后用case语句测试表达式,假如amountOverSpeedLimit等于0(case 0:),则向变量fine赋值0,假如amountOverSpeedLimit等于10,则向变量fine赋值20,等等。在前三个case中都有break语句。break语句用于转出switch块,即找到了符合表达式的情况,switch语句的余下部分可以忽略了。最后有个default语句,假如没有符合表达式的情况,则程序执行default语句。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有