Goで条件文を書く方法
序章
条件文はすべてのプログラミング言語の一部です。 条件付きステートメントを使用すると、そのときのプログラムの状態に応じて、実行される場合と実行されない場合があるコードを作成できます。
プログラムの各ステートメントを完全に実行する場合、特定の条件を評価するようにプログラムに要求することはありません。 条件文を使用することにより、プログラムは特定の条件が満たされているかどうかを判断し、次に何をすべきかを指示することができます。
条件文を使用するいくつかの例を見てみましょう。
- 学生が65% onを超えるテストを受けた場合は、成績が合格したことを報告してください。 そうでない場合は、彼女の成績が失敗したことを報告してください。
- 彼の口座にお金がある場合は、利息を計算します。 そうでない場合は、違約金を請求します。
- オレンジを10個以上購入した場合は、5%の割引を計算します。 購入数が少ない場合は、購入しないでください。
条件を評価し、それらの条件が満たされているかどうかに基づいて実行するコードを割り当てることにより、条件付きコードを記述しています。
このチュートリアルでは、Goプログラミング言語で条件ステートメントを作成する方法について説明します。
Ifステートメント
まずは if
ステートメント。ステートメントがtrueかfalseかを評価し、ステートメントがtrueの場合にのみコードを実行します。
プレーンテキストエディタで、ファイルを開き、次のコードを記述します。
package main
import "fmt"
func main() {
grade := 70
if grade >= 65 {
fmt.Println("Passing grade")
}
}
このコードでは、変数があります grade
そしてそれに整数値を与えています 70
. 次に、 if
可変グレードが以上であるかどうかを評価するステートメント( >=
) に 65
. この条件を満たしている場合は、文字列を出力するようにプログラムに指示しています。 Passing grade
.
プログラムを名前を付けて保存 grade.go
ローカルプログラミング環境でターミナルウィンドウからコマンドを使用して実行します go run grade.go
.
この場合、グレード70
OutputPassing grade
の値を変更して、このプログラムの結果を変更してみましょう。 grade
に可変 60
:
package main
import "fmt"
func main() {
grade := 60
if grade >= 65 {
fmt.Println("Passing grade")
}
}
this コードを保存して実行すると、条件が not であり、プログラムに別のステートメントを実行するように指示しなかったため、出力が返されません。
もう1つの例として、銀行口座の残高が0未満であるかどうかを計算してみましょう。 というファイルを作成しましょう account.go
次のプログラムを作成します。
package main
import "fmt"
func main() {
balance := -5
if balance < 0 {
fmt.Println("Balance is below 0, add funds now or you will be charged a penalty.")
}
}
プログラムを実行すると go run account.go
、次の出力を受け取ります。
OutputBalance is below 0, add funds now or you will be charged a penalty.
プログラムでは、変数を初期化しました balance
の値で -5
、0未満です。 天びんが if
声明 (balance < 0
)、コードを保存して実行すると、文字列出力を受け取ります。 ここでも、残高を0または正の数に変更すると、出力は受信されません。
その他のステートメント
プログラムに何かをしてもらいたいと思うかもしれません if
ステートメントはfalseと評価されます。 成績の例では、成績が合格か不合格かを出力する必要があります。
これを行うために、 else
次のように構成された上記のグレード条件へのステートメント:
package main
import "fmt"
func main() {
grade := 60
if grade >= 65 {
fmt.Println("Passing grade")
} else {
fmt.Println("Failing grade")
}
}
グレード変数の値は 60
、 if
ステートメントはfalseと評価されるため、プログラムは出力されません Passing grade
. The else
次のステートメントは、プログラムにとにかく何かをするように指示します。
プログラムを保存して実行すると、次の出力が表示されます。
OutputFailing grade
次に、プログラムを書き直して、グレードに次の値を与えます。 65
以上の場合、代わりに出力を受け取ります Passing grade
.
追加するには else
銀行口座の例に対するステートメントでは、次のようにコードを書き直します。
package main
import "fmt"
func main() {
balance := 522
if balance < 0 {
fmt.Println("Balance is below 0, add funds now or you will be charged a penalty.")
} else {
fmt.Println("Your balance is 0 or above.")
}
}
OutputYour balance is 0 or above.
ここでは、 balance
変数値を正の数にすると、 else
ステートメントが出力されます。 最初に取得するには if
印刷するステートメントの場合、値を負の数に書き換えることができます。
を組み合わせることによって if
とのステートメント else
ステートメントでは、2つの部分からなる条件ステートメントを作成して、コンピューターに特定のコードを実行するように指示します。 if
条件が満たされています。
それ以外の場合のステートメント
これまで、条件付きステートメントのブールオプションを提示してきました。 if
trueまたはfalseのいずれかに評価されるステートメント。 多くの場合、2つ以上の可能な結果を評価するプログラムが必要になります。 このために、Goで記述されている elseifステートメントを使用します。 else if
. The else if
または、ステートメントが次のようになっている場合 if
ステートメントと別の条件を評価します。
銀行口座プログラムでは、3つの異なる状況に対して3つの個別の出力が必要になる場合があります。
- 残高は0未満です
- バランスは0に等しい
- 残高が0を超えています
The else if
ステートメントは、 if
ステートメントと else
次のようなステートメント:
package main
import "fmt"
func main() {
balance := 522
if balance < 0 {
fmt.Println("Balance is below 0, add funds now or you will be charged a penalty.")
} else if balance == 0 {
fmt.Println("Balance is equal to 0, add funds soon.")
} else {
fmt.Println("Your balance is 0 or above.")
}
}
ここで、プログラムを実行すると発生する可能性のある3つの出力があります。
- 変数の場合
balance
に等しい0
からの出力を受け取りますelse if
声明 (Balance is equal to 0, add funds soon.
) - 変数の場合
balance
が正の数に設定されている場合、からの出力を受け取りますelse
声明 (Your balance is 0 or above.
). - 変数の場合
balance
が負の数に設定されている場合、出力はからの文字列になりますif
声明 (Balance is below 0, add funds now or you will be charged a penalty
).
しかし、3つ以上の可能性が必要な場合はどうでしょうか。 複数の書き込みを行うことでこれを行うことができます else if
コードにステートメントを追加します。
の中に grade.go
プログラムでは、数値の成績の範囲に対応するいくつかの文字の成績があるようにコードを書き直してみましょう。
- 90以上はAグレードに相当します
- 80-89はBグレードに相当します
- 70-79はCグレードに相当します
- 65-69はDグレードに相当します
- 64以下はFグレードに相当します
このコードを実行するには、1つ必要です。 if
ステートメント、3 else if
ステートメント、および else
すべての失敗したケースを処理するステートメント。
前の例のコードを書き直して、各文字の成績を出力する文字列を作成してみましょう。 私たちは else
同じステートメント。
package main
import "fmt"
func main() {
grade := 60
if grade >= 90 {
fmt.Println("A grade")
} else if grade >= 80 {
fmt.Println("B grade")
} else if grade >= 70 {
fmt.Println("C grade")
} else if grade >= 65 {
fmt.Println("D grade")
} else {
fmt.Println("Failing grade")
}
}
以来 else if
ステートメントは順番に評価され、ステートメントをかなり基本的なものに保つことができます。 このプログラムは、次の手順を完了しています。
-
グレードが90より大きい場合、プログラムは印刷します
A grade
、成績が90未満の場合、プログラムは次のステートメントに進みます… -
グレードが80以上の場合、プログラムは印刷します
B grade
、グレードが79以下の場合、プログラムは次のステートメントに進みます… -
グレードが70以上の場合、プログラムは印刷します
C grade
、グレードが69以下の場合、プログラムは次のステートメントに進みます… -
グレードが65以上の場合、プログラムは印刷します
D grade
、グレードが64以下の場合、プログラムは次のステートメントに進みます… -
プログラムは印刷されます
Failing grade
上記のすべての条件が満たされていないためです。
ネストされたIfステートメント
あなたが快適に感じたら if
, else if
、 と else
ステートメントの場合、ネストされた条件ステートメントに進むことができます。 ネストされたものを使用できます if
最初の条件がtrueとして実行された場合に、2番目の条件をチェックする状況のステートメント。 このために、別のif-elseステートメント内にif-elseステートメントを含めることができます。 ネストされた構文を見てみましょう if
声明:
if statement1 { // outer if statement
fmt.Println("true")
if nested_statement { // nested if statement
fmt.Println("yes")
} else { // nested else statement
fmt.Println("no")
}
} else { // outer else statement
fmt.Println("false")
}
このコードから、いくつかの可能な出力が生じる可能性があります。
- もしも
statement1
trueと評価されると、プログラムは次のことを評価します。nested_statement
また、trueと評価されます。 両方のケースが当てはまる場合、出力は次のようになります。
Outputtrue yes
- ただし、
statement1
trueと評価されますが、nested_statement
falseと評価された場合、出力は次のようになります。
Outputtrue no
- で、もし
statement1
falseと評価され、ネストされたif-elseステートメントは実行されないため、else
ステートメントは単独で実行され、出力は次のようになります。
Outputfalse
複数持つこともできます if
コード全体にネストされたステートメント:
if statement1 { // outer if
fmt.Println("hello world")
if nested_statement1 { // first nested if
fmt.Println("yes")
} else if nested_statement2 { // first nested else if
fmt.Println("maybe")
} else { // first nested else
fmt.Println("no")
}
} else if statement2 { // outer else if
fmt.Println("hello galaxy")
if nested_statement3 { // second nested if
fmt.Println("yes")
} else if nested_statement4 { // second nested else if
fmt.Println("maybe")
} else { // second nested else
fmt.Println("no")
}
} else { // outer else
statement("hello universe")
}
このコードには、ネストされたものがあります if
それぞれの中の声明 if
に加えてステートメント else if
声明。 これにより、各条件内でより多くのオプションが可能になります。
ネストされた例を見てみましょう if
私たちとの声明 grade.go
プログラム。 成績が最初に合格しているかどうか(65%以上)を確認してから、数値の成績がどの文字の成績と同等であるかを評価できます。 ただし、成績が合格しなかった場合は、文字の成績を確認する必要はありません。代わりに、成績が不合格であることをプログラムに報告させることができます。 ネストされたコード if
ステートメントは次のようになります。
package main
import "fmt"
func main() {
grade := 92
if grade >= 65 {
fmt.Print("Passing grade of: ")
if grade >= 90 {
fmt.Println("A")
} else if grade >= 80 {
fmt.Println("B")
} else if grade >= 70 {
fmt.Println("C")
} else if grade >= 65 {
fmt.Println("D")
}
} else {
fmt.Println("Failing grade")
}
}
変数を使用してコードを実行すると grade
整数値に設定 92
、最初の条件が満たされ、プログラムが出力されます Passing grade of:
. 次に、グレードが90以上かどうかを確認し、この条件も満たされているため、印刷します。 A
.
でコードを実行すると grade
に設定された変数 60
、その後、最初の条件が満たされないため、プログラムはネストされたものをスキップします if
ステートメントと下に移動します else
ステートメント、プログラムの印刷 Failing grade
.
もちろん、これにさらにオプションを追加して、ネストされたifステートメントの2番目のレイヤーを使用することもできます。 おそらく、A +、A、A-のグレードを別々に評価したいと思うでしょう。 これを行うには、最初に成績が合格かどうかを確認し、次に成績が90以上かどうかを確認し、次にA+の成績が96を超えているかどうかを確認します。
...
if grade >= 65 {
fmt.Print("Passing grade of: ")
if grade >= 90 {
if grade > 96 {
fmt.Println("A+")
} else if grade > 93 && grade <= 96 {
fmt.Println("A")
} else {
fmt.Println("A-")
}
...
このコードでは、 grade
に設定された変数 96
、プログラムは以下を実行します。
- グレードが65以上かどうかを確認します(true)
- プリントアウト
Passing grade of:
- グレードが90以上かどうかを確認します(true)
- グレードが96より大きいかどうかを確認します(false)
- グレードが93より大きく96以下(true)かどうかを確認します
- 印刷
A
- これらのネストされた条件ステートメントを残して、残りのコードを続行します
したがって、グレード96のプログラムの出力は次のようになります。
OutputPassing grade of: A
ネスト if
ステートメントは、コードにいくつかの特定のレベルの条件を追加する機会を提供できます。
結論
次のような条件文を使用する if
ステートメントを使用すると、プログラムの実行内容をより細かく制御できます。 条件ステートメントは、特定の条件が満たされているかどうかを評価するようにプログラムに指示します。 条件が満たされている場合は特定のコードを実行しますが、満たされていない場合はプログラムは他のコードに移動し続けます。
条件文の練習を続けるには、さまざまな演算子を使用して、条件文に慣れてください。