English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ruby bietet mehrere sehr häufig verwendete bedingte Strukturen. Hier erklären wir alle bedingten Anweisungen und die verfügbaren Modifikatoren in Ruby.
falls bedingung [dann] code... [falls bedingung [dann] code...]... [else code...] 结束
if Der Ausdruck wird für bedingte Ausführung verwendet. Wert false und nil Falsch, alle anderen Werte sind wahr. Bitte beachten Sie, dass Ruby 'elsif' verwendet, nicht 'else if' oder 'elif'.
wenn bedingungen wird wahr, dann wird ausgeführt code. Wenn bedingungen nicht wahr, dann wird der else-Abschnitt ausgeführt code.
Oft wird das Reservewort then weggelassen. Um eine vollständige if-Formel auf einer Zeile zu schreiben, muss zwischen Bedingungsformel und Programmabschnitt then gesetzt werden. Zum Beispiel:
if a == 4 dann a = 7 结束
!/usr/bin/ruby # -*- 编码: UTF-8 -*- x=1 if x > 2 puts "x ist größer als 2" elsif x <= 2 und x!=0 puts "x ist 1" else puts "Der Wert von x kann nicht ermittelt werden" 结束
Die Ergebnisse der obigen Beispiel-Ausgabe:
x ist 1
code if bedingung
Der if-Modifikator bedeutet, dass die linke Seite des if-Teils nur ausgeführt wird, wenn die Bedingung auf der rechten Seite wahr ist. D.h. wenn bedingungen wird wahr, dann wird ausgeführt code.
!/usr/bin/ruby $debug=1 print "debug\n" if $debug
Die Ergebnisse der obigen Beispiel-Ausgabe:
debug
unless bedingungen [then] code [else code ] 结束
unless- und if-Formeln haben umgekehrte Wirkungen, d.h. wenn bedingungen wird falsch, dann wird der else-Abschnitt ausgeführt code. Wenn bedingungen wird wahr, dann wird der else-Abschnitt ausgeführt code.
!/usr/bin/ruby # -*- 编码: UTF-8 -*- x=1 unless x>2 puts "x ist kleiner als 2" else puts "x ist größer als 2" 结束
以上示例输出结果为:
x ist kleiner als 2
code unless bedingungen
wenn bedingungen wird falsch, dann wird der else-Abschnitt ausgeführt code.
!/usr/bin/ruby # -*- 编码: UTF-8 -*- $var = 1 print "1 -- Diese Zeile gibt aus\n" if $var print "2 -- Diese Zeile gibt nicht aus\n" unless $var $var = false print "3 -- Diese Zeile gibt aus\n" unless $var
Die Ergebnisse der obigen Beispiel-Ausgabe:
1 -- Diese Zeile gibt aus 3 -- Diese Zeile gibt aus
case expression [when expression [, expression ...] [then] code ]... [else code ] 结束
case führt zunächst eine expression um eine Übereinstimmung zu überprüfen und dann eine Zweigwahl basierend auf dem Übereinstimmungsergebnis durchzuführen.
Es wird verwendet ===operator comparison when bezeichnet expression,falls übereinstimmend, wird ausgeführt when Teil des Inhalts.
Oft wird das Reservewort then weggelassen. Um eine vollständige when-Formel auf einer Zeile zu schreiben, muss zwischen Bedingungsformel und Programmabschnitt dann gesetzt werden. Zum Beispiel:
when a == 4 dann a = 7 结束
Daher:
case expr0 when expr1, expr2 stmt1 when expr3, expr4 stmt2 else stmt3 结束
Grundsätzlich ähnelt es:
_tmp = expr0 if expr1 === _tmp || expr2 === _tmp stmt1 elsif expr3 === _tmp || expr4 === _tmp stmt2 else stmt3 结束
!/usr/bin/ruby # -*- 编码: UTF-8 -*- $age = 5 case $age when 0 .. 2 打印 "婴儿" when 3 .. 6 打印 "孩子" when 7 .. 12 打印 "child" when 13 .. 18 打印 "少年" else 打印 "其他年龄段的" 结束
以上示例输出结果为:
孩子
当 case 的 "表达式" 部分被省略时,将计算第一个 when 条件部分为真的表达式。
foo = false bar = true quu = false case 当 foo 时 then 打印 'foo 是 true' 当 bar 时 then 打印 'bar 是 true' 当 quu 时 then 打印 'quu 是 true' 结束 # 显示 "bar 是 true"