欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++條件語句和條件運(yùn)算符的使用方法講解

 更新時(shí)間:2015年09月08日 08:47:21   投稿:goldensun  
這篇文章主要介紹了C++條件語句和條件運(yùn)算符的使用方法講解,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

if語句的3種形式

1) if(表達(dá)式) 語句。

例如:

 if(x>y) cout<<x<<endl;

這種if語句的執(zhí)行過程見下圖。

2) if(表達(dá)式) 語句1 else 語句2

例如:

 if (x>y) cout<<x;
 else cout<<y;

見圖。

3)

if(表達(dá)式1) 語句1
 else if(表達(dá)式2) 語句2
 else if(表達(dá)式3) 語句3
 …
 else if(表達(dá)式m) 語句m
 else 語句n

例如:

if (number>500) cost=0.15;
else if(number>300) cost=0.10;
else if(number>100) cost=0.075;
else if(number>50) cost=0.05;
else cost=0;

流程圖見圖。

說明:
從圖3.5和圖3.6可以看到: 3種形式的if語句都是由一個(gè)入口進(jìn)來,經(jīng)過對“表達(dá)式”的判斷,分別執(zhí)行相應(yīng)的語句,最后歸到一個(gè)共同的出口。這種形式的程序結(jié)構(gòu)稱為選擇結(jié)構(gòu)。在C++中if語句是實(shí)現(xiàn)選擇結(jié)構(gòu)主要的語句。
3種形式的if語句中在if后面都有一個(gè)用括號(hào)括起來的表達(dá)式,它是程序編寫者要求程序判斷的“條件”,一般是邏輯表達(dá)式或關(guān)系表達(dá)式。
第2、第3種形式的if語句中,在每個(gè)else前面有一分號(hào),整個(gè)語句結(jié)束處有一分號(hào)。
在if和else后面可以只含一個(gè)內(nèi)嵌的操作語句(如上例),也可以有多個(gè)操作語句,此時(shí)用花括號(hào)“{}”將幾個(gè)語句括起來成為一個(gè)復(fù)合語句。

【例】求三角形的面積。

#include <iostream>
#include <cmath> //使用數(shù)學(xué)函數(shù)時(shí)要包含頭文件cmath
#include <iomanip> //使用I/O流控制符要包含頭文件iomanip
using namespace std;
int main( )
{
 double a,b,c;
 cout<<"please enter a,b,c:";
 cin>>a>>b>>c;
 if (a+b>c && b+c>a && c+a>b)
 { //復(fù)合語句開始
  double s,area;//在復(fù)合語句內(nèi)定義變量
  s=(a+b+c)/2;
  area=sqrt(s*(s-a)*(s-b)*(s-c));
  cout<<setiosflags(ios::fixed)<<setprecision(4); //指定輸出的數(shù)包含4位小數(shù)
  cout<<"area="<<area<<endl; //在復(fù)合語句內(nèi)輸出局部變量的值
 } //復(fù)合語句結(jié)束
 else cout<<"it is not a trilateral!"<<endl;
 return 0;
}

運(yùn)行情況如下:

please enter a, b, c:2.45 3.67 4.89↙
area=4.3565

變量s和area只在復(fù)合語句內(nèi)用得到,因此在復(fù)合語句內(nèi)定義,它的作用范圍為從定義變量開始到復(fù)合語句結(jié)束。如果在復(fù)合語句外使用s和area,則會(huì)在編譯時(shí)出錯(cuò),系統(tǒng)認(rèn)為這兩個(gè)變量未經(jīng)定義。將某些變量局限在某一范圍內(nèi),與外界隔離,可以避免在其他地方被誤調(diào)用。
if語句的嵌套

在if語句中又包含一個(gè)或多個(gè)if語句稱為if語句的嵌套。一般形式如下:

 if( )
  if( )語句1
  else 語句2
 else
  if( )語句3
  else 語句4

應(yīng)當(dāng)注意if與else的配對關(guān)系。else總是與它上面最近的、且未配對的if配對。假如寫成:

 if( )
  if( )語句1
 else
  if( )語句2
  else 語句3

編程序者把第一個(gè)else寫在與第一個(gè)if(外層if)同一列上,希望else與第一個(gè)if對應(yīng),但實(shí)際上else是與第二個(gè)if配對,因?yàn)樗鼈兿嗑嘧罱?,而且第二個(gè)if并未與任何else配對。為了避免誤用,最好使每一層內(nèi)嵌的if語句都包含else子句(如本節(jié)開頭列出的形式),這樣if的數(shù)目和else的數(shù)目相同,從內(nèi)層到外層一一對應(yīng),不致出錯(cuò)。

如果if與else的數(shù)目不一樣,為實(shí)現(xiàn)程序設(shè)計(jì)者的企圖,可以加花括號(hào)來確定配對關(guān)系。例如:

 if( )
 {
  if ( ) 語句1
 } //這個(gè)語句是上一行if語句的內(nèi)嵌if
 else 語句2//本行與第一個(gè)if配對

這時(shí){ }限定了內(nèi)嵌if語句的范圍,{ }外的else不會(huì)與{ }內(nèi)的if配對。關(guān)系清楚,不易出錯(cuò)。

C++條件運(yùn)算符(? :)
若在if語句中,當(dāng)被判別的表達(dá)式的值為“真”或“假”時(shí),都執(zhí)行一個(gè)賦值語句且給同一個(gè)變量賦值時(shí),可以用簡單的條件運(yùn)算符來處理。例如,若有以下if語句:

 if (a>b) max=a;
 else max=b;

可以用條件運(yùn)算符(? :)來處理:

 max=(a>b)?a:b;


其中“(a>b)?a:b”是一個(gè)“條件表達(dá)式”。它是這樣執(zhí)行的:如果(a>b)條件為真,則條件表達(dá)式的值就取“?”后面的值,即條件表達(dá)式的值為a,否則條件表達(dá)式的值為“:”后面的值,即b。

條件運(yùn)算符要求有3個(gè)操作對象,稱三目(元)運(yùn)算符,它是C++中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:

 表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3;

條件運(yùn)算符的執(zhí)行順序是:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。“max=(a>b)?a:b” 的執(zhí)行結(jié)果是將條件表達(dá)式的值賦給max。也就是將a和b二者中的大者賦給max。條件運(yùn)算符優(yōu)先于賦值運(yùn)算符,因此上面賦值表達(dá)式的求解過程是先求解條件表達(dá)式,再將它的值賦給max。

條件表達(dá)式中,表達(dá)式1的類型可以與表達(dá)式2和表達(dá)式3的類型不同。如

 x ? 'a': 'b';

如果已定義x為整型變量,若x=0,則條件表達(dá)式的值為字符'b'的ASCII碼。表達(dá)式2和表達(dá)式3的類型也可以不同,此時(shí)條件表達(dá)式的值的類型為二者中較高的類型。如有條件表達(dá)式x>y?1:1.5,如果x≤y,則條件表達(dá)式的值為1.5,若x>y,值應(yīng)為1,由于C++把1.5按雙精度數(shù)處理,雙精度的類型比整型高,因此,將1轉(zhuǎn)換成雙精度數(shù),以此作為表達(dá)式的值。

【例】輸入一個(gè)字符,判別它是否為大寫字母,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。

#include <iostream>
using namespace std;
int main( )
{
 char ch;
 cin>>ch;
 ch=(ch>='A' && ch<='Z')?(ch+32):ch; //判別ch是否大寫字母,是則轉(zhuǎn)換
 cout<<ch<<endl;
 return 0;
}

相關(guān)文章

  • sdl顯示一張bmp圖片示例

    sdl顯示一張bmp圖片示例

    這篇文章主要介紹了sdl顯示一張bmp圖片示例,需要的朋友可以參考下
    2014-04-04
  • 通過示例詳解C++智能指針

    通過示例詳解C++智能指針

    這篇文章主要為大家通過示例介紹了C++智能指針的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • C++使用BitBlt進(jìn)行窗口抓圖的方法

    C++使用BitBlt進(jìn)行窗口抓圖的方法

    這篇文章主要介紹了C++使用BitBlt進(jìn)行窗口抓圖的方法,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2021-01-01
  • 利用反射獲得類的public static/const成員的值實(shí)例

    利用反射獲得類的public static/const成員的值實(shí)例

    下面小編就為大家?guī)硪黄梅瓷浍@得類的public static/const成員的值實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • VC++ 中ListCtrl經(jīng)驗(yàn)總結(jié)

    VC++ 中ListCtrl經(jīng)驗(yàn)總結(jié)

    這篇文章主要介紹了VC++ 中ListCtrl經(jīng)驗(yàn)總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • C++中的friend函數(shù)詳細(xì)解析

    C++中的friend函數(shù)詳細(xì)解析

    本篇文章主要介紹了C++中的friend函數(shù)詳細(xì)解析,對初學(xué)c++的人有一定的幫助,有需要的可以了解一下。
    2016-11-11
  • 解決Qt設(shè)置QTextEdit行高的問題

    解決Qt設(shè)置QTextEdit行高的問題

    這篇文章介紹了Qt設(shè)置QTextEdit行高的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • opencv3/C++繪制幾何圖形實(shí)例

    opencv3/C++繪制幾何圖形實(shí)例

    今天小編就為大家分享一篇opencv3/C++繪制幾何圖形實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C語言數(shù)據(jù)在內(nèi)存中的存儲(chǔ)流程深入分析

    C語言數(shù)據(jù)在內(nèi)存中的存儲(chǔ)流程深入分析

    使用編程語言進(jìn)行編程時(shí),需要用到各種變量來存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么
    2022-10-10
  • C++報(bào)錯(cuò):Id?returned?1exit?status的解決辦法

    C++報(bào)錯(cuò):Id?returned?1exit?status的解決辦法

    最近剛學(xué)c語言,不止一次遇到了同一種報(bào)錯(cuò),經(jīng)過總結(jié)分享給大家,下面這篇文章主要給大家介紹了關(guān)于C++報(bào)錯(cuò):Id?returned?1exit?status的解決辦法,需要的朋友可以參考下
    2023-04-04

最新評論