C++ 语言基础(2)
2008-03-08 21:55:14 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佽鍨庨崘锝嗗瘱闂備胶顢婂▍鏇㈠箲閸ヮ剙鐏抽柡鍐ㄧ墕缁€鍐┿亜韫囧海顦﹀ù婊堢畺閺屻劌鈹戦崱娆忓毈缂備降鍔庣划顖炲Φ閸曨垰绠抽悗锝庝簽娴犻箖姊洪棃娑欐悙閻庢矮鍗抽悰顕€宕堕澶嬫櫖濠殿噯绲剧€笛囧箲閸ヮ剙钃熼柣鏂挎憸閻熷綊鏌涢…鎴濇灈妞ゎ剙鐗嗛—鍐Χ鎼粹€茬凹缂備緡鍠楅幐鎼佹偩閻戣棄纭€闁绘劕绉靛Λ鍐春閳ь剚銇勯幒鎴濐伀鐎规挷绀侀埞鎴︽偐閹绘帩浼€缂佹儳褰炵划娆撳蓟濞戞矮娌柟瑙勫姇椤ユ繈姊洪柅鐐茶嫰婢т即鏌熼搹顐e磳闁挎繄鍋涢埞鎴犫偓锝庘偓顓涙櫊閺屽秵娼幏灞藉帯闂佹眹鍊曢幊鎰閹惧瓨濯撮柛鎾村絻閸撳崬顪冮妶鍡楃仸闁荤啿鏅涢悾鐑藉Ψ瑜夐崑鎾绘晲鎼粹剝鐏嶉梺缁樻尰濞叉﹢濡甸崟顖氱疀闂傚牊绋愮花鑲╃磽娴h棄鐓愭慨妯稿妿濡叉劙骞樼拠鑼槰闂佸啿鎼崐濠毸囬弶搴撴斀妞ゆ梻銆嬪銉︺亜椤撶偛妲婚柣锝囧厴楠炴帡骞嬮弮鈧悗濠氭⒑鐟欏嫭鍎楅柛妯衡偓鐔插徍濠电姷鏁告慨鐑藉极閸涘﹥鍙忔い鎾卞灩绾惧鏌熼崜褏甯涢柍閿嬪灦閵囧嫰骞掗崱妞惧缂傚倷绀侀ˇ閬嶅极婵犳氨宓侀柛鈩冪⊕閸婄兘鏌涘┑鍡楊伀妞ゆ梹鍔曢埞鎴︽倻閸モ晝校闂佸憡鎸婚悷锔界┍婵犲洦鍤冮柍鍝勫暟閿涙粓姊鸿ぐ鎺戜喊闁告瑥楠搁埢鎾斥堪閸喓鍘搁柣蹇曞仧绾爼宕戦幘璇茬疀濞达絽鎲¢崐顖炴⒑绾懎浜归悶娑栧劦閸┾偓妞ゆ帒鍟惃娲煛娴e湱澧柍瑙勫灴閹瑩寮堕幋鐘辨闂備礁婀辨灙闁硅姤绮庨崚鎺楀籍閸喎浠虹紓浣割儓椤曟娊鏁冮崒娑氬幈闂佸搫娲㈤崝宀勬倶閻樼粯鐓曢柟鑸妼娴滄儳鈹戦敍鍕杭闁稿﹥鐗犲畷婵嬫晝閳ь剟鈥﹂崸妤€鐒垫い鎺嶈兌缁犲墽鈧厜鍋撳┑鐘辩窔閸嬫鈹戦纭烽練婵炲拑绲垮Σ鎰板箳閹冲磭鍠撻幏鐘绘嚑閼稿灚姣愰梻鍌氬€烽懗鑸电仚濠电偛顕崗妯侯嚕椤愩倖瀚氱€瑰壊鍠栧▓銊︾節閻㈤潧校缁炬澘绉瑰鏌ュ箵閹烘繄鍞甸柣鐘烘鐏忋劌顔忛妷褉鍋撶憴鍕碍婵☆偅绻傞~蹇涙惞閸︻厾锛滃┑鈽嗗灠閹碱偊锝炲鍥╃=濞达綁顥撻崝宥夋煙缁嬪灝鏆遍柣锝囧厴楠炲鏁冮埀顒傜不婵犳碍鍋i柛銉戝啰楠囬悗瑙勬尭缁夋挳鈥旈崘顔嘉ч柛鈩兠棄宥囩磽娴e壊鍎愰柛銊ュ缁顓兼径瀣偓閿嬨亜閹哄秶顦︾€殿喖鐏濋埞鎴﹀煡閸℃浠梺鍛婎焼閸曨収娲告俊銈忕到閸燁垶宕愰崹顐e弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

核心提示:if语句 if语句用于测试条件并在条件为真时执行一桌或几条语句, 说明:if表达式后面不能带分号,C++ 语言基础(2),否则它本身表示代码中的空语句,使编译器将空语句解释为在条件为真时执行的语句,最后有个default语句,假如没有符合表达式的情况, if (x == 10); // Warning! Extra s
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语句。
[]
更多精彩
赞助商链接