小雨學程式設計之C 15 表示式(續)三元運算子

2021-10-20 22:41:21 字數 1764 閱讀 1864

我們之前接觸了條件運算子、邏輯運算子等幾種運算子及其表示式。在介紹的過程中,我們一直在描述,運算子和運算元的關係及其操作方式。

回顧之前的知識點,我們發現我們接觸過的運算子只有兩類:

一類是只有乙個運算元的,比如自增、自減運算子++a、b–,還有邏輯運算子中的非!(a>b)

一類是有左右兩個運算元的,比如算數運算子a+b,條件運算子a>b

1、基礎知識

由於運算元個數的關係,我們將只有乙個運算元的運算子叫做一元運算子,將有兩個運算元的運算子叫做二元運算子,這兩類運算子的功能比較簡單,接下來我們介紹乙個功能稍微複雜的運算子,這個運算子有三個運算元,所以叫做三元運算子。

先看**:

哎呀,這部分**又是?又是:的,是不是加密了?這**看得懂呀……,這樣的運算子是不是有很多呀,我們是不是需要挨個學習呢?

看到這裡可能大家會有這樣的疑問,不過大家不需要擔心,這樣的稍微複雜的運算子僅此乙個,而且邏輯還是比較哦簡單的。

之所以叫做三元運算子我們知道,那麼這個運算子一定有三個運算元,他的語法結構就是:運算元1?運算元2:運算元3;

這個運算子整體的意思就是:如果運算元1成立,整個表示式提供給我們運算元2,如果運算元1不成立,整個表示式提供給我們運算元3。

這樣就好理解啦,我們將對應變數的值帶入表示式,於是看到表示式應當為(2>1)?18:19;

這裡2<3成立,依照三元運算子的執行邏輯,這時候當然提供給我們18嘍。

不過有粉絲會問,這個三元表示式有啥用呢?那麼我們將上述例子帶入真實需求來看,比如我們的程式需求為:乙個人年齡18歲,生日是本月2號,需要程式判斷當前日期,如果當前日期小於2號,那麼告訴我們這個人18歲,如果當前日期大於2號,那麼告訴我們這個人19歲。我們可以用我們基礎語法來解決實際的需求,是不是有恍然大明白的感覺!

2、基礎知識拓展

我們將**簡單修改:

我們在分析這段**的時候,要明白兩件事:

1、我們一直在描述的運算元,其實是個泛泛的概念,需要依據具體問題具體分析,這裡的運算元有時候是具體的乙個數值,有時候就是表示式,比如現在**中的第乙個運算元就是乙個用來執行比較的表示式。

2、我們的有些運算子有自己特殊的執行方式,比如之前我們介紹的邏輯或,它的含義是只要兩邊有一邊是成立的,那麼整體表示式就成立,從而在執行過程中,如果左邊的運算元成立,自動判斷整個表示式成立,從而就不執行右邊的運算元了。所以我們可以依據對應運算子的特殊執行方式,解決實際問題。

那麼現在我們看到的例子就是這種情況,對於三元運算子,我們知道如果運算元1成立,整個表示式提供給我們運算元2,如果運算元1不成立,整個表示式提供給我們運算元3。那麼設想一下,對應運算元2和運算元3的位置上不是數值,而是表示式呢?那麼是不是說,當系統提供給我們運算元2或者運算元3的時候,如果對應位置上是表示式,就先執行表示式,然後將表示式最後的值提供給我們。

所以這個例子的理解方式是:將運算元1位置上帶入具體數值,(2>3)?18:++18,意思就是說2>3不成立,所以現在需要執行運算元3,但是運算元3位置上是乙個自增運算,座椅自增結果為19,整個表示式結果就是19。

這個例子仍然可以用實際需求來帶入:

乙個人的年齡是18,他的生日是本月2號,程式判斷當前日期,如果小於2號,就直接告訴我們這個人的年齡,如果大於2號,就讓這個人的年齡自動長一歲,然後再告訴我們。

小雨學程式設計之C 14 表示式(續)邏輯運算子

之前我們介紹了運算表示式,知道了運算表示式可以給我們乙個運算後的具體值。我們也介紹了條件表示式,知道了條件表示式可以給我們乙個成立 不成立的結果,也就是true false。本節我們在條件表示式的基礎上,介紹邏輯表示式。1 基礎知識 這裡我們簡單回顧一下條件表示式 這時我們需要觀察,無論我們使用算數...

C 三元表示式詳情

if else語句非常常用,但在進行一些簡單邏輯判斷的時候,會顯得有些不太簡潔。特別是在初始化的時候,比如我們有乙個變數,某種情況下賦值成a,另外的情況下賦值成b。使用if else語句寫出來就是 int cur if condition else 這當然是沒問題的,只是在大量使用的時候會顯得有些繁...

C 三元表示式和隨機數

三元表示式 bool result 5 3?true false console.writeline 輸入姓名 string name console.readline if name 高山 else console.readkey 三元表示式,只需一行就能解決 string temp name 高...