English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby 条件判断

Ruby bietet mehrere sehr häufig verwendete bedingte Strukturen. Hier erklären wir alle bedingten Anweisungen und die verfügbaren Modifikatoren in Ruby.

Ruby falls...sonst Anweisung

Syntax

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 结束

Online-Beispiel

!/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

Ruby if Modifikator

Syntax

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.

Online-Beispiel

!/usr/bin/ruby
 
$debug=1
print "debug\n" if $debug

Die Ergebnisse der obigen Beispiel-Ausgabe:

debug

Ruby unless Anweisung

Syntax

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.

Online-Beispiel

!/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

Ruby unless Modifikator

Syntax

code unless bedingungen

wenn bedingungen wird falsch, dann wird der else-Abschnitt ausgeführt code.

Online-Beispiel

!/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

Ruby case Anweisung

Syntax

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
结束

Online-Beispiel

!/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"