![post-title](https://i.ytimg.com/vi/_RsaNzZFuUU/hqdefault.jpg)
c#三元運算子 在 コバにゃんチャンネル Youtube 的最讚貼文
![post-title](https://i.ytimg.com/vi/_RsaNzZFuUU/hqdefault.jpg)
Search
介紹C/C++ 三元運算子的用法,在C/C++ 使用三元運算子(ternary operator) 好處是程式碼可以看起來比較簡短,在某些情況C/C++ 使用三元運算子簡化後 ... ... <看更多>
C# if...else ... 與三元運算子? ... : ... 236 views236 views. Oct 17, 2016. 0. 0 ... ... <看更多>
#1. 運算子- C# 參考
條件運算子 ?: (也稱為三元條件運算子)會評估布林運算式,並根據布林運算式是否評估為或,傳回兩個運算式其中之一的結果, true false 如下列範例所 ...
【C#】如何在C#中使用三元運算子. 2020-11-23 C#. int number = 5;; 當數字等於5時,寫入真實的; 當數字不等於5時,寫入錯誤的; 如何使用C#在ASP.NET中為此編寫語句?
#3. C#程式設計基礎第六課:C#中三元運算子的初級使用和巢狀
知識點:三元運算子的使用。 1、三元運算子. 三元運算子的初級使用:. 符號: ?: 舉例:int c=bool ? a : b. 當bool=true,c=表示式a, ...
C# Online ! 第十九篇:C# 運算子來嘍Part VI ~ 『三元運算子』
#5. C#判斷語句詳解(if、if-else、switch-case、三目/元運算子)
C# 判斷語句詳解(if、if-else、switch-case、三目/元運算子) · 判斷語句是指程式指定一個或者多個需要評測的條件時,映射出兩種結果,條件成立或者不成立時 ...
#6. C#技術分享20-[C#]?:陳述句 - iT 邦幫忙
它需要三個運算元,是C# 中唯一的三元運算子。 條件式 x ?: y : z 如果x 為true 則評估y;如果x 為false 則評估z 簡單來說他就是if else的簡寫
#7. 三元運算子 - 康廷數位
C# 所提供的一種三元運算子?: ,語法格式如下: condition-express ? result1 : result2 這個運算子根據? 左邊運算式的運算結果,決定回傳值為其右邊 ...
#8. AS3巢狀三元運算子怎麼寫,三元運算子怎麼巢狀 - 好問答網
c#三元運算子 是一個有返回值的表示式,所以不能執行無返回值語句,並且(表示式1 ? 表示式2 : 表示式3)中,表示式2和表示式3的資料型別必須相同.
#9. [C#] 「?」符號使用心得筆記| 記憶裂縫 - 點部落
運算子 (C# 參考). 下面是一個普通的判斷式,結果是大於設定值60 就 ... 當三元運算子簡化寫法 int i = 80; Console.WriteLine((i>=60)?"合格":"不 ...
#10. 運算式與運算子- JavaScript
假如運算元具有相同型態且等價則回傳True。參考 Object.is (en-US) 及JS中的等價性。 3 === var1. 嚴格 ...
#11. C# 快速導覽- 運算子 - 程式語言教學誌
另外有一種條件運算子,這是三元運算子?: ,需要三個運算元,三者均可為運算式,形式如下 若運算式expr1 為真,運算結果會是運算式expr2 計算出的值,若為假,運算結果 ...
#12. C#運算子 - VB.Net - 痞客邦
運算子 是用來指定資料做何種運算。 運算子按照運算時所需要的運算元數目分成: 1.單元運算子如:-5、i++。 2.二元運算子如:a+b。 3.三元運算子如:max=(a>b)?a.
#13. C 三元運算子 - 程序員學院
C 三元運算子,c 條件運算子是指什麼呢? ... 稱為條件運算子。有時,它也稱為三元運算子。 conditional e. ... 讓我們首先從概念上了解c#條件運算子:.
#14. c#三元运算符- i617 - 博客园
C# 中有一个三元运算符“?:”,语法为:条件表达式?表达式1:表达式2;该操作首先求出条件表达式的值(bool类型),为true时调用表达式1,为flase时调用 ...
#15. 三元運算子表示式1?表示式2表示式3中,表示式 - 迪克知識網
1樓:匿名使用者. c#三元運算子是一個有返回值的表示式,所以不能執行無返回值語句,並且(表示式1 ? 表示式2 : 表示式3)中,表示式2和表示式3的資料 ...
#16. C/C++ 三元運算子
介紹C/C++ 三元運算子的用法,在C/C++ 使用三元運算子(ternary operator) 好處是程式碼可以看起來比較簡短,在某些情況C/C++ 使用三元運算子簡化後 ...
#17. C# if...else ... 與三元運算子?
C# if...else ... 與三元運算子? ... : ... 236 views236 views. Oct 17, 2016. 0. 0 ...
#18. 三元運算子 - 他山教程
三元運算子 是右關聯的,允許使用複合三元表示式。這是通過在父三元方程的真或假位置新增額外的三元方程來完成的。應注意確保可讀性,但在某些情況下這 ...
#19. 問號?冒號?這是三原運算子 - Medium
Conditional (ternary) Operator. 中文翻譯為,「三元運算子」。 這名字是要我怎麼查啊!!!◢···· ...
#20. [VB.NET] 三元運算子IIF - 張BCの隨筆
[VB.NET] 三元運算子IIF. 說明: VB中的三元運算子該怎麼寫?C#為value = condition ? first_expression : first_expression; 語法:
#21. C# - 三元運算式& Nullable
C# - 三元運算式& Nullable. Published 2015-01-24 08:25. c#. 一般來說判斷條件後給變數值的寫法通常是用 if else. var str = "";; if (條件判斷); {; str = "abc";; } ...
#22. Re: [問題] 關於三元運算子- 看板C_and_CPP
引述《spong (請輸入ID)》之銘言: : 今天翻書突然看到c++條件運算子的 ... const char *y = "Quillstone"; : for(int i = 0;i<3;i++) : { : cout ...
#23. 三元運算子 - Kyuos
20/11/2018 · 運算子(C# 參考)?: operator (C# reference) 11/20/2018 本文內容條件運算子?: (通稱為三元條件運算子) 會評估布林運算式,然後根據布林運算式評估為true ...
#24. C和C++運算子- 維基百科,自由的百科全書
敘述 多載性 結合性 作用域解析(C++專有) 否 由左至右 字尾遞增 由左至右 字尾遞減 由左至右
#25. 流程控制| C# 基礎
三元運算子. 功能同兩個決策點的條件判斷式,只是語法較為簡潔如果運算式一為true,則x=的值為運算式二的結果,否則x的值為運算式三的結果x = (運算式一) ? (運算式二) ...
#26. 深入研究C語言三元運算子( x ? y : z ) (完) - 猛哥的軌跡
C語言有很多運算子相信你也背不出來(這邊有包含C++ 的運算子),一共58 種運算子被分為17類,而唯一的三元運算子( Ternary Operator ) 被分類在第15類 ...
#27. [C#][.NET] DBNull 和三元運算 - 廣度與深度- 痞客邦
寫回DB時,要判斷是否為Null, cmd.Parameters.AddWithValue("@Customer", model.txtCustomer ?? (object)DBNull.Value); 可用Null聯合運算子??
#28. 三元運算子php - 軟體兄弟
在PHP程式中恰當地使用三元運算子能夠讓指令碼更為 ..., 介紹PHP中運算子的用法,包含種類、優先順序、算術運算子(Arithmetic Operator)、指派運算子(Assignment .
#29. 三元運算式 - meltdown - 痞客邦
C#. int a= 60; string str= (a> 59) ? "大於60" : "小於60";. = string str ="". if (a >59 ). {str="大於60"}. else. {str="小於60"} ...
#30. 三元運算子 - w3c學習教程
三元運算子,在日常工作中,為了提高工作效率,我們通常會用數字代替我們所要表達的文字敘述。 例如我們在建立商品資料庫時,通常會用0 , 1 等數字 ...
#31. C#三元运算符?:高级点的用法_along-CSDN博客
初级三元运算符用法:. p=bool?A:B. 当bool=true,p=表达式A,当bool=false,p=表达式B。 那么当你遇到?:?:时,不要楞,三元运算符也是可以嵌套的。
#32. 三源運算子 - Mycork
介紹C/C++ 三元運算子的用法,在C/C++ 使用三元運算子(ternary operator) 好處是程式碼可以看起來 ... 相關文章C#程式設計基礎第六課:C#中三元運算子的初級使用和巢狀.
#33. C 速查手冊- 3.9 條件運算子 - 程式語言教學誌
條件運算子是C 語言裡唯一的三元運算子?: ,需要三個運算元,三個運算元都可為運算式,形式如下. expr1?expr2:expr3. 若expr1 為真,運算結果會是expr2 的值,若為假, ...
#34. 技術文件網[C 語言] 程式設計教學如何使用運算子(Operators)
前言在程式語言中,運算子多以符號表示,通常都無法再化約成更小的單位,所以運算子 ... 二元運算子用在二進位數運算。 ... 以下範例用三元運算子求得兩值中較大者:.
#35. 找python三元運算子相關教育資訊
提供python三元運算子相關教育資訊與推薦書籍,想要了解更多python三元運算子相關教育資訊或書籍,就來教育百科.
#36. C# - 一些簡潔程式寫法 - 限量ㄟ蓋步
Null判斷給值. 類似上一種寫法,C#在Null判斷給值上提供一個??運算子,表示如下:. string x = null; string y = string.Empty; y = x ?? "Hello";.
#37. 三元運算子運用 - VH
三元運算子 真是個好用的東西. 可以節省一堆if else判斷式. 來記錄一些常用的三元運算. 基本公式. a = (true) ? “A":"B". 但若是碰到bool值.
#38. 三元運算子回傳lambda expression - 技术文章
紀錄一下 假如我想要透過三元運算子?: 傳回lambda expression 要明確轉型. ... 标签: C# C#开发 C#语言. 你还没有登录,请先登录或注册!
#39. 三元运算符_百度百科
三元运算 符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。 ... 不过Python的三元运算符和java以及C#有所区别,语法格式为:. 表达式1 if 条件表达 ...
#40. c 運算子意思– c++ 運算子 - Imkerdar
指定運算子在C#中,” = “的意思和數學上的等於是不同,在這裡是表示指定的意思, ... 運算子,位元運算子, 邏輯運算子, 字串運算子, 條件三元運算子以及更多運算子,.
#41. C# ?: 運算子
也稱為三元條件運算子)計算布林運算式並返回兩個運算式之一的結果,具體 ... 如果 condition 評估為 true ,則會接著評估 consequent 運算式,且其 ...
#42. C 問號的作用10 - 極客派
意思是:如果表示式a為真,則整個表示式的值為b,否則值為c。 3樓:狐狸——精靈. 只是一個判斷的表示式,三元運算子,左是右非. c#中的單問號(?
#43. 三源運算子【PHP】13.
三元運算子 與if-else的關係三元運算子那這個東西聽起來很玄,但其實用法和if else沒甚麼 ... 在寫程式中往往會遇到一些簡化程式碼的簡寫,如foreach在C# 3.0有了LinQ ...
#44. 第二章IO及運算子
二元運算子: 具有二個運算元,如+-*/%^. 三元運算子: a>b?a:b. 運算元: 進行運算的資料. 指定運算子= : a=b是將b放入a中,不是a等於b, 等於是==.
#45. 2017年9月28日星期四
可為逗號運算子。 return expression1 } else { // test 為false 時,所 ... C# 2.0 後的運算子; 如果運算元不是null,則會傳回左方運算元,否則傳回 ...
#46. 為什么golang中不存在三元運算子
三元運算子 廣泛存在于其他語言中,比如:. python: val = trueValue if expr else falseValue. javascript: const val = expr ?
#47. C# - 首頁
歡迎所有喜歡C#的同好來這裡分享心得~ 不管是初學者或是資深的前輩們,希望大家能夠不吝 ... 第十九篇:C# 運算子來嘍Part VI ~ 『三元運算子』 - C# 心得分享- 點部落.
#48. 判斷式在PTT/Dcard完整相關資訊 - 健康急診室
運算子 - C# 參考| Microsoft Docs2020年9月17日· Twitter · LinkedIn · Facebook · 電子郵件; WeChat ... 也稱為三元條件運算子)會評估布林運算式, ...
#49. c# - 運算子- 判斷式英文- 解決了 - CODE Q&A
c# - 運算子- 判斷式英文. 三元運算符的速度是if-else塊的兩倍? (6). 編輯:. 增加了一個可以用if-else語句而不是條件運算符來完成的例子。
#50. 各語言中的三元運算子與golang 對比 - IT人
定義三元運算子是軟體程式設計中的一個固定格式,語法是“條件表示式? ... 不過Python的三元運算子和java以及C#有所區別,語法格式為:
#51. C#三元表达式(问号冒号)和Lambda表达式 - 天祺围棋
C# 中有一个三元运算符“?:”,语法为:条件表达式?表达式1:表达式2; 该操作首先求出条件表达式的值(bool类型),为true时调用表达式 ...
#52. 各语言中的三元运算符与golang 对比| Go 技术论坛 - LearnKu
三元运算 符定义三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。 ... 不过Python 的三元运算符和java 以及C# 有所区别,语法格式为:
#53. [PERL] 06-運算子#2 @新精讚
(三元)狀態運算子?: 16. 指派運算子,有= += -= *= 等. 17. 指定運算=>. 18.清單運算子. 19.符號運算子not. 20 邏輯運算子and. 21.邏輯運算子or xor.
#54. C#基礎——運算子_AI浩
三元運算子 :?:規則:判斷?前面的表示式是否為真(true):若是,則返回:前面的那個資料,否則返回:後面的資料。簡單的說,就是個if..else語句。
#55. C#運算子 - tw511教學網
運算子 只是一個用於執行操作的符號。可以有許多型別的操作,如算術,邏輯,按位元等運算操作。 有以下型別的運算子可以在C#語言中執行不同型別的操作運算。
#56. JavaScript教學- 運算子(Operators) - 下 - 小殘的程式光廊
介紹JavaScript中的運算子(Operators)的用法,包含邏輯運算子(Logical ... 條件運算子(Conditional Operator)是唯一的三元運算子,語法如下:
#57. C 程式設計之C 基礎(七) - w3c菜鳥教程
表示式是由一個或多個運算元以及零個或零個以上的運算子所組成的序列,可. ... 接受三個運算元,是c# 中唯一的三元運算子。 下面的c# 語句包含一個 ...
#58. 發現C# 中有一個特殊的運算子"??" 分享
運算子 ,如下範例中,如果str2 不是null 就會傳回str2(左運算元),否則傳回"N/A"(右運算元):. [code:c#] string str1 = str2 ?? "N/A"; [/code].
#59. python 三元運算子 - Krifc
python 三元運算子. 三元運算子(ternary conditional operator) 在C/C++裡以?: (問號冒號)表示在python中則以x if y else z 表示x=True if 'a'=='a' else False #意思 ...
#60. 第三章比較運算子與if 陳述式- 板橋高中資訊社
我們可以執行以下的陳述式來看看它的回傳值。 cout << (123 < 456); 這個程式在螢幕上輸出了一個 1。也就是說,C++ 是以 1 來代表「真、成立、True」等意義,相對的,它以 ...
#61. 三元運算子Ternary
Ternary Operator(三元運算子) Ternary Operator(三元運算子) – Ronnie Chang 如果if-else 內的處理邏輯很簡單具有共同性,例如只是宣告或回傳某值,可以考慮 ...
#62. C++ 条件运算符? : | 菜鸟教程
如果Exp1 为假,则计算Exp3 的值,且Exp3 的计算结果则为整个? : 表达式的值。 ? 被称为三元运算符,因为它需要三个操作数,可以用来代替如下所示的if-else 语句 ...
#63. C# 动态Linq 三元运算符 - IT工具网
我想对空值进行动态检查。 我想创建一个where 子句,它只会比较日期字段的日期部分。 它适用于不可为空的日期字段,但对于可为空的日期字段,我们需要 ...
#64. net mvc Razor 三元運算判斷賦值? - ZenDei技術網路在線
.net mvc Razor 三元運算判斷賦值?: ... maxlength="3" style="text-align:right;width:80px; " value='@(Model.Age == 0? "":Model.Age. ... 附:C#驅動源代碼。
#65. 三源運算子三 - Dlouz
在python 使用三元運算子(ternary conditional operator) 好處是程式碼可以看 ... 運算子– C# 參考運算子(C# 參考)?: operator (C# reference) 09/17/2020; 本文內容.
#66. 2.C#基本語法和變數 - 程式前沿
C# 基本語法: 程式碼的外觀和操作方式和C 與java非常類似,但實際上C# ... 是二元運算子,只有幾個一元運算子和三元運算子,即條件運算子數學運算子: ...
#67. C# Operator - My Program
當然, 和三元運算子的寫法同義, 只是上面的?? 更精簡一些: string mytest = Request.QueryString["test"] == null ? "" : Request.
#68. C++ if ?: 三元運算子(?:)
C++ if ?: 三元運算子(?:) ?: operator can be used as a shortcut for an if…else statement."> ?:
#69. c語言中if語句多條件(或者並且)
注意:條件運算子是c語言中惟一一個三目(三元)運算子. 4樓:一都程式設計. c#語言核心開發,.net技術,在c#中使用if條件分支語句、if雙分支、if單 ...
#70. C#簡易教學(2)資料型別與運算子 - 熊的手札
在此要注意,C#是不允許使用未初始化過的變數,在此我們做個小測試,看會出現什麼 ... 一元(Unary)運算子、二元(Binary)運算子、三元(Tenary)運算子。
#71. [C#] 問號運算子複習 - Coding...
int a = (b == 1) ? c = 2 : c = 3; //第三種 int a = (s ?? string.Empty).Length; 1.可為空的型別 2.三元運算子 3.判斷變數是否為空並負值.
#72. 演算法筆記- Bit
C/C++ 的位元運算子: << 、 >> 、 & 、 | 、 ^ 、 ~ ,可以修改變數的位元。 UVa 10469 10264 ... 的每個位元的0 和1 。 ~ 00000000000000000000000000000011 -> 3 ...
#73. 三元運算子(Lua) - 嗚嗚喔學習筆記
三元運算子 (Lua). C 版本: (a>b) ? true : false. Lua 版本(a>b) and true or false 程式碼: local a = 10 local b = 20 print("a>b" , (a>b) and ...
#74. C# 运算符 - 极客教程
3 C# 赋值运算符; 4 C# 连接字符串; 5 C# 算术运算符; 6 C# 布尔运算符 ... 运算符; 18 C# 空值运算符; 19 C# 空折叠赋值运算符; 20 C# 三元运算符 ...
#75. C# - Null型別 - 上帝的藝術-微軟的神域
可為null 的型別修飾詞能夠讓C# 建立表示未定義之值的實值型別(Value ... 可為Null 的型別也可以使用預先定義的一元和二元運算子,以及現有實值型別的 ...
#76. C# if 簡寫[ ?: 運算子] - jashliao部落格
[C#基礎] ... c# 三元運算子. 回覆. [email protected] 說:. 2019-08-08 at 16:28:28. C++ 三元運算子. C++ if 簡寫[ ?: 運算子].
#77. 邏輯運算、位元運算
三段程式分別會輸出1、0 與1,也就是分別表示真、假與真三種狀況。 ... 接下來看看位元運算子(Bitwise operator),數位設計上有AND、OR、NOT、XOR 與補數等運算,在C ...
#78. c語言運算子問號2.關係運算子 - Tzpage
問號運算子(又稱三元運算子) 用例子說明: (X >= Y) ? ... 的運算子是什麼意思?zz 演算法中的運算元是什麼意思,影象處理一樣理解C#語法中一個問號(?)和兩個問號(?
#79. SQLSERVER 實現三元運算符 - 台部落
三元運算 符在很多種編程語言中都存在,那麼在SQL Server中有沒有呢? 很遺憾,SQL server中並沒有這個功能,三元運算符是什麼呢?
#80. C# tips —關於可空類型
1) 在與1元或二元運算子一起使用時,如果其中一個運算元為null或兩個均null,則結果為null。如:int? a = null;int? b = a+3;則b為null 2) 比較可空 ...
#81. C# .net 語法判斷條件成立返回第一個值不成立返回第二個值
用三目運算子?: 例如:. 如果數a小於2取a的值, 否則取值為2 寫法如下. a<2?a:2.
#82. 三數比大小(利用三元運算子) - 種子論壇
三數比大小(利用三元運算子) · #include<cstdlib> · #include<iostream> · using namespace std; · int main() · { · int num1,num2,num3; · int max,min,mid;
#83. LINQ查詢中使用的C#三元運算符- 優文庫 - UWENKU
是否可以使用三元運算符來反映此邏輯? if (a = 1) { somevalue =
#84. c 運算子C
C# 學習筆記4,if 及while 等陳述式, 運算子意義為變更優先順序 C 語言第三章03 運算子 、運算元與. C語言運算子,11 = 8 (3次方) + 2(1次方) + 1(0次方) 再來就 ...
#85. C#三元运算符?:高级点的用法 - 腾讯云
那么当你遇到?:?:时,不要楞,三元运算符也是可以嵌套的。 用AForge.net时,有代码如下: var population = new Population(populationSize ...
#86. 三元運算符未按預期工作- 堆棧內存溢出
我正在使用以下代碼將結果顯示為偶數或奇數,而不是true和false: Console.WriteLine(" is " + result == true ? "even" : "odd");. 因此,我正在使用三元運算符,但是 ...
#87. Visual C# 2017基礎必修課(適用2017/2015)(電子書)
4.5 三元運算子所謂三元運算子(Ternary Operator)是指根據布林(Boolean)運算式的值,決定傳回兩個值的其中一個。顧名思義該運算子執行時,需要三個運算元才能運算。
#88. Visual C# 2015程式設計經典(電子書) - 第 3-10 頁 - Google 圖書結果
三元運算子 所謂「三元運算子」(Tenary Operator)是指該運算子執行運算時需要三個運算元,若需要將比較的結果直接指定給一個變數名稱,便可以使用三元運算子來取代 ...
#89. Visual C# 2013程式設計經典(電子書) - 第 3-10 頁 - Google 圖書結果
三元運算子 所謂「三元運算子」(Tenary Operator)是指該運算子執行運算時需要三個運算元,若需要將比較的結果直接指定給一個變數名稱,便可以使用三元運算子來取代 ...
#90. 網頁程式設計ASP.NET 4.5完美入門--使用C# (電子書)
運算子 :一般常見的運算子有 +、-、*、/和 new 等符號或關鍵字。運算式中的運算子會指示要為運算元套用哪些運算,以下是一個運算式: x=2+(y*3);其中加(+)與乘(*)符號是 ...
#91. 網頁程式設計ASP.NET 4.6完美入門--適用Visual C# 2015~2012(電子書)
運算式中的運算子會指示要為運算元套用哪些運算,以下是一個運算式: x = 2 +( y * 3);其中加(+)與乘(*)符號是運算子,而 2、y 及 3 是運算元,如此構成一個運算式。
#92. [JAVA]流程控制三元運算子
多個if else if 判斷, 不建議使用三元判斷式, 因為會使程式複雜化。 // if() score = 70; if (score ...
#93. C# 邏輯運算子、條件、判斷、迴圈、陳述 - 史克威爾凱特的 ...
基本上, 我將這些只會回傳true或false的運算式稱為邏輯(布林)運算, 運算式中的符號稱之為邏輯(布林)運算子, 這些運算式在if-else 、while、for ...
#94. c#三元運算符- 碼上快樂 - CODEPRJ
C 三元運算符: ,語法為:條件表達式表達式:表達式該操作首先求出條件表達式的值bool類型,為true時調用表達式,為flase時調用表達式。
#95. 位运算有什么奇技淫巧? - 知乎
右移运算,向右进行移位操作,对无符号数,高位补0,对于有符号数,高位补符号位,如. unsigned int a = 8; a >> 3; 移位前:0000 0000 0000 0000 0000 0000 0000 1000 ...
#96. 運算式和運算子
3 -2. Hello ! C++ 程式設計. 3.1 運算式與運算子簡介. 3.1.1 運算式與敘述. 運算式是由運算元(operand)和運算子(operator)組成的,如左下圖,. = 和+ 是運算 ...
#97. [小雨學程式設計之C#] 15 表示式(續)三元運算子 - 日間新聞
我們之前接觸了條件運算子、邏輯運算子等幾種運算子及其表示式。在介紹的過程中,我們一直在描述,運算子和運算元的關係及其操作……
#98. Home | Dhirubhai Ambani Institute of Information and ...
3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 1. 2. 3. 4. Pagination. Open Event Calendar ...
c#三元運算子 在 Re: [問題] 關於三元運算子- 看板C_and_CPP 的推薦與評價
※ 引述《spong (請輸入ID)》之銘言:
: 今天翻書突然看到c++條件運算子的問題
: 像c = a > b ? a : b 我可以理解
: 但當我翻到下一頁,看到以下程式碼
: int main(void)
: {
: const char x[2][20] = {"Jason ","at your service\n"};
: const char *y = "Quillstone";
: for(int i = 0;i<3;i++)
: {
: cout << ((i<2)? !i ? x[i]:y:x[1]);
: }
: return 0;
: }
: 我完全不了解 cout << ((i<2)? !i ? x[i]:y:x[1])這行的運作規則
: 請問要怎麼解釋那段程式呢??
非常建議原 PO 換一本書來學習, 因為這份程式碼沒有任何道理.
即便你弄清楚它的流程, 你也學不到 ?: 的正確用法 (尤其放在迴
圈裡的時候). 首先可以把這份程式碼拿去編譯執行看看:
https://wandbox.org/permlink/CUwEvD5BvPy1aRHb
可以發現輸出是 "Jason Quillstoneat your service", 程式碼裡
的每個字串常數剛好只出現一次, 而仔細看迴圈裡 ?: 用法:
a ? b ? c : d : e
c, d, e 敘述也都剛好各被輸出一次, 你可以用寫死的字串來驗證
看看:
https://wandbox.org/permlink/CQsOUrkN59bBcY6r
那麼從左而右 ?: 裡的敘述基本上可以改寫為:
((i < 2) ? !i ? "Jason " : "Quillstone" : "at your service\n")
(i == 0) (i == 1) (i == 2)
?: 的觀念和 if-else 類似, 搭配迴圈使用的話, 需要先知道索引
值和敘述的對應關係, 然後就是平鋪直敘地把它寫下來:
( i == 0 ? "Jason " // if (i == 0) "Jason "
: i == 1 ? "Quillstone" // else if (i == 1) "Quillstone"
: "at your service\n" // else "at your service\n"
)
然後再把寫死的字串用原本的變數給替換回來:
( i == 0 ? x[0] // it's unnecessary to use x[i] here
: i == 1 ? y
: x[1]
)
寫到這邊就可以結束了, 原本敘述裡 i < 2 就是想涵蓋 i == 0
以及 i == 1 兩種情況, 但後面的 !i 又是在唯二的情況下擇一求
值, 這就是我覺得沒有道理的地方 (多餘的條件引進不必要的複雜
度, 違反 zero-overhead principle).
當要在多種情況擇其一的時候, 需要盡可能地把條件變成具有正交
性的, 不會彼此依賴, 這樣程式碼的結構就會趨於簡單, 而且往後
條件變動的話也不太需要大改. 這題我覺得和加不加括號沒關係,
即使 if-else 擠在同一行也不容易理解.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.76.216 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1587563631.A.ED1.html
... <看更多>