1. 程式人生 > 其它 >Task 4 運算子、控制語句

Task 4 運算子、控制語句

技術標籤:Go語言資料探勘

Task 4 運算子、控制語句

運算子

算術運算子和關係運算符與其他語言通用 這裡總結一下邏輯運算子(主要是怕記不住)
運算子 描述
&& 邏輯 AND 運算子。 如果兩邊的運算元都是 True,則條件 True,否則為 False。
| | 邏輯 OR 運算子。 如果兩邊的運算元有一個 True,則條件 True,否則為 False。
! 邏輯 NOT 運算子。 如果條件為 True,則邏輯 NOT 條件 False,否則為 True。

運算子描述
&&邏輯 AND 運算子。 如果兩邊的運算元都是 True,則條件 True,否則為 False。
\\邏輯 OR 運算子。 如果兩邊的運算元有一個 True,則條件 True,否則為 False。
!邏輯 NOT 運算子。 如果條件為 True,則邏輯 NOT 條件 False,否則為 True。

其他運算子

優先順序

優先順序

條件語句

參考datawhale的教程

if語句

  • if 語句 由一個布林表示式後緊跟一個或多個語句組成。
  • if 語句 後可以使用可選的 else 語句, else語句中的表示式在布林表示式為 false 時執行。
  • if 或 else if 語句中可嵌入一個或多個 if 或 else if 語句。
  • 同各類主流語言,不多贅述。但注意,Go 沒有三目運算子,所以不支援 ?: 形式的條件判斷

switch語句

  • 用於基於不同條件執行不同動作,每一個 case 分支都是唯一的,從上至下逐一測試,直到匹配為止。
  • 匹配項後面不需要再加 break。
  • witch 預設情況下 case 最後自帶 break 語句,匹配成功後就不會執行其他 case,如果我們需要執行後面的case,可以使用 fallthrough 。
  • fallthrough:強制執行後面的 case語句,fallthrough 不會判斷下一條 case 的表示式結果是否為 true
switch x.(type){
  case type:
    statement
(s); case type: statement(s); default: // 可選 statement(s); }

解釋:從第一個判斷表示式為 true 的 case 開始執行,如果 case 帶有 fallthrough,程式會繼續執行下一條 case,且它不會去判斷下一個 case 的表示式是否為 true。

  1. 支援多條件匹配
  2. 不同的 case 之間不使用 break 分隔,預設只會執行一個 case
  3. 如果想要執行多個 case,需要使用fallthrough 關鍵字,也可用 break 終止

select語句

select {
  case communication clause  :
    statement(s);
  case communication clause  :
    statement(s);
  default : // 可選
    statement(s);
}
  • 每個 case 都必須是一個通訊
  • 所有 channel 表示式都會被求值
  • 所有被髮送的表示式都會被求值
  • 如果任意某個通訊可以進行,它就執行,其他被忽略。
  • 如果有多個 case 都可以執行,Select 會隨機公平地選出一個執行。其他不會執行。 否則:
  • 如果有 default 子句,則執行該語句。
  • 如果沒有 default 子句,select 將阻塞,直到某個通訊可以執行;Go 不會重新對 channel 或值進行求值。

迴圈語句

for迴圈

for init; condition; post { } //for
for condition { } //while
for {}
init: 一般為賦值表示式,給控制變數賦初值;
condition: 關係表示式或邏輯表示式,迴圈控制條件;
post: 一般為賦值表示式,給控制變數增量或減量。

for 迴圈的 range 格式可以對 slice、map、陣列、字串等進行迭代迴圈:

for key, value := range oldMap {
  newMap[key] = value

迴圈巢狀

格式如下:

for [condition |  ( init; condition; increment ) | Range] {
 for [condition |  ( init; condition; increment ) | Range] {
   statement(s);
 }
 statement(s);
}

迴圈控制語句

break語句:

  • 用於迴圈語句中跳出迴圈,並開始執行迴圈之後的語句。
  • break 在 switch(開關語句)中在執行一條 case 後跳出語句的作用。
  • 在多重迴圈中,可以用標號 label 標出想 break 的迴圈。

continue語句:

跳過當前迴圈的剩餘語句,然後繼續進行下一輪迴圈。

goto語句:

無條件轉移到過程中指定行,與條件語句配合,實現條件轉移、構成迴圈、跳出迴圈體等(不建議用,造成混亂)