Bedingter Zweig von Ruby. if, bedingter Operator (ternärer Operator), es sei denn, case

Boolescher Wert in Ruby

In Ruby ist nur false oder nil false, und alles andere ist true, einschließlich 0 und leerer Zeichenfolgen.

falsch wahr
false, nil anders als das( true,0 ,Leere Zeichenkette usw.)

if Führt die angegebene Verarbeitung durch, wenn der bedingte Ausdruck übereinstimmt.

Syntax

wenn Ausdruck[then]
Formel...
[elsif Ausdruck[then]
Formel... ]
...
[else
Formel... ]
end

[] Ist ein optionales Teil.

Seien Sie vorsichtig, wenn Sie Erfahrung mit anderen Sprachen haben, da es sich um elsif (ohne e) handelt, anstatt um els ** e ** if. Das letzte andere ** e ** erfordert e.

Beispielsatz

score = 90

if score == 100
  puts 'S'
elsif score >= 90
  puts 'A'
elsif score >= 80
  puts 'B'
else
  puts 'C'
end

#Beispiel mit dann
if score == 100 then
  puts 'S'
end

Bedingter Operator (ternärer Operator)

?:
#?Syntax Ausdruck 1 Ausdruck 2 Ausdruck 3 Bedingung ◯:Im Falle von ×

Beispielsatz

checked = true
puts checked ? "Bereits" : "Noch nicht"

#Gleiche Bedeutung wie der folgende Satz.
# puts (if checked then  "Bereits" else "Noch nicht" end)

unless

Im Gegensatz zu wenn. Wenn nicht. Sätze, mit denen geschrieben werden kann, es sei denn, Sie können auch mit if geschrieben werden, damit Sie schreiben können, wie Sie möchten.

Beachten Sie, dass es schwer zu verstehen sein wird, wenn es sich um eine doppelte Ablehnung handelt. Es sei denn und Code-Lesbarkeit in Ruby | TechRacho-Engineer "?" To "!" - | BPS Co., Ltd. )

Syntax

Es gibt kein anderes. sonst kann weggelassen werden.

es sei denn, Ausdruck[then]
Formel...
[else
Formel... ]
end

Beispielsatz

unless baby?
  #Der bedingte Ausdruck ist falsch(false)Im Falle von
  puts "Reis essen"
else
  puts "Milch trinken"
end

case Als Richtlinie für die ordnungsgemäße Verwendung mit if denke ich, dass dieser Fall besser für parallele Bedingungen geeignet ist, aber was ist damit?

Ich dachte, es wäre dasselbe wie die switch-Anweisung, aber es scheint völlig anders zu sein ... [Ich möchte ein paar Worte zu denen sagen, die denken, dass der Ruby-Fall eine switch-Anweisung von 〇〇 (Sprachname) ist](https://melborne.github.io/2013/02/25/i- will-etwas-über-rubys-fall sagen /)

Syntax

case [Formel]
[wenn Ausdruck[,Formel] ...[, `*'Formel] [then]
Formel..]..
[when `*'Formel[then]
Formel..]..
[else
Formel..]
end

Beispielsatz

os = "macOS"

case os
when "Windows"
  #wird bearbeitet
when "macOS", "Unix"
  #Die Bedingungen für die Durchführung derselben Verarbeitung können zusammen beschrieben werden
when "Linux"
  #wird bearbeitet
else
  #wird bearbeitet
end

Referenz

Kontrollstruktur (Ruby 2.7.0 Referenzhandbuch) Operatorausdruck (Ruby 2.7.0-Referenzhandbuch)

Recommended Posts

Bedingter Zweig von Ruby. if, bedingter Operator (ternärer Operator), es sei denn, case
Ruby bedingte Verzweigungsverarbeitung
Ruby bedingter Zweig (case, while, Endlosschleife, break)
Kotlin hat keinen ternären Operator (bedingter Operator)
[Einführung in Java] Bedingte Verzweigung (if-Anweisung, if-else-Anweisung, else if-Anweisung, ternärer Operator, switch-Anweisung)
Java-bedingter Zweig
Referenz ternärer Operator
[Java] Bedingter Zweig
[Ruby] Wenn der bedingte Operator zweimal (oder öfter) fortgesetzt wird