程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++前提語句和前提運算符的應用辦法講授

C++前提語句和前提運算符的應用辦法講授

編輯:關於C++

C++前提語句和前提運算符的應用辦法講授。本站提示廣大學習愛好者:(C++前提語句和前提運算符的應用辦法講授)文章只能為提供參考,不一定能成為您想要的結果。以下是C++前提語句和前提運算符的應用辦法講授正文


if語句的3種情勢

1) if(表達式) 語句。

例如:

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

這類if語句的履行進程見下圖。

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

例如:

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

見圖。

3)

if(表達式1) 語句1
 else if(表達式2) 語句2
 else if(表達式3) 語句3
 …
 else if(表達式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語句都是由一個進口出去,經由對“表達式”的斷定,分離履行響應的語句,最初歸到一個配合的出口。這類情勢的法式構造稱為選擇構造。在C++中if語句是完成選擇構造重要的語句。
3種情勢的if語句中在if前面都有一個用括號括起來的表達式,它是法式編寫者請求法式斷定的“前提”,普通是邏輯表達式或關系表達式。
第2、第3種情勢的if語句中,在每一個else後面有一分號,全部語句停止處有一分號。
在if和else前面可以只含一個內嵌的操作語句(如上例),也能夠有多個操作語句,此時用花括號“{}”將幾個語句括起來成為一個復合語句。

【例】求三角形的面積。

#include <iostream>
#include <cmath> //應用數學函數時要包括頭文件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)
 { //復合語句開端
  double s,area;//在復合語句內界說變量
  s=(a+b+c)/2;
  area=sqrt(s*(s-a)*(s-b)*(s-c));
  cout<<setiosflags(ios::fixed)<<setprecision(4); //指定輸入的數包括4位小數
  cout<<"area="<<area<<endl; //在復合語句內輸入部分變量的值
 } //復合語句停止
 else cout<<"it is not a trilateral!"<<endl;
 return 0;
}

運轉情形以下:

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

變量s和area只在復合語句內用獲得,是以在復合語句內界說,它的感化規模為從界說變量開端到復合語句停止。假如在復合語句外應用s和area,則會在編譯時失足,體系以為這兩個變量未經界說。將某些變量局限在某一規模內,與外界隔離,可以免在其他處所被誤挪用。
if語句的嵌套

在if語句中又包括一個或多個if語句稱為if語句的嵌套。普通情勢以下:

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

應該留意if與else的配對關系。else老是與它下面比來的、且未配對的if配對。假設寫成:

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

編法式者把第一個else寫在與第一個if(外層if)統一列上,願望else與第一個if對應,但現實上else是與第二個if配對,由於它們相距比來,並且第二個if並未與任何else配對。為了不誤用,最好使每層內嵌的if語句都包括else子句(如本節開首列出的情勢),如許if的數量和else的數量雷同,從內層到外層逐個對應,不致失足。

假如if與else的數量紛歧樣,為完成法式設計者的妄圖,可以加花括號來肯定配對關系。例如:

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

這時候{ }限制了內嵌if語句的規模,{ }外的else不會與{ }內的if配對。關系清晰,不容易失足。

C++前提運算符(? :)
若在if語句中,當被辨別的表達式的值為“真”或“假”時,都履行一個賦值語句且給統一個變量賦值時,可以用簡略的前提運算符來處置。例如,如有以下if語句:

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

可以用前提運算符(? :)來處置:

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


個中“(a>b)?a:b”是一個“前提表達式”。它是如許履行的:假如(a>b)前提為真,則前提表達式的值就取“?”前面的值,即前提表達式的值為a,不然前提表達式的值為“:”前面的值,即b。

前提運算符請求有3個操尴尬刁難象,稱三目(元)運算符,它是C++中唯一的一個三目運算符。前提表達式的普通情勢為:

 表達式1 ? 表達式2 : 表達式3;

前提運算符的履行次序是:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為全部前提表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是全部前提表達式的值。“max=(a>b)?a:b” 的履行成果是將前提表達式的值賦給max。也就是將a和b兩者中的年夜者賦給max。前提運算符優先於賦值運算符,是以下面賦值表達式的求解進程是先求解前提表達式,再將它的值賦給max。

前提表達式中,表達式1的類型可以與表達式2和表達式3的類型分歧。如

 x ? 'a': 'b';

假如已界說x為整型變量,若x=0,則前提表達式的值為字符'b'的ASCII碼。表達式2和表達式3的類型也能夠分歧,此時前提表達式的值的類型為兩者中較高的類型。若有前提表達式x>y?1:1.5,假如x≤y,則前提表達式的值為1.5,若x>y,值應為1,因為C++把1.5按雙精度數處置,雙精度的類型比整型高,是以,將1轉換成雙精度數,以此作為表達式的值。

【例】輸出一個字符,辨別它能否為年夜寫字母,假如是,將它轉換成小寫字母;假如不是,不轉換。然後輸入最初獲得的字符。

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

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