程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++語言基礎(2)

C++語言基礎(2)

編輯:關於C++

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語句。

c/c++的高級內容: 結構,指針,引用,函數及類等可以參考其他書籍.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved