English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ruby offre diversi tipi di strutture condizionali comuni. In questo articolo, spiegheremo tutte le espressioni condizionali e i modificatori disponibili in Ruby.
if condizionale [then] code... [elsif condizionale [then] code...]... [else code...] fine
if l'espressione viene utilizzata per l'esecuzione condizionale. Valore false e nil Se è falso, tutti gli altri valori sono veri. Si prega di notare che Ruby utilizza elsif, non else if o elif.
se condizionale esegui se vero code. Se condizionale Se non è vero, eseguire la clausola else specificata code.
Di solito omitiamo la parola chiave then. Se si desidera scrivere l'espressione if completa su una singola riga, è necessario separare l'espressione condizionale dal blocco di codice con then. Ecco un esempio:
if a == 4 then a = 7 end
#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 if x > 2 puts "x maggiore di 2" elsif x <= 2 and x != 0 puts "x è 1" altrimenti puts "Impossibile conoscere il valore di x" fine
Il risultato di esempio di output sopra:
x è 1
code if condizione
il gruppo di modificatori if indica che l'espressione a sinistra dell'if viene eseguita solo se la condizione a destra dell'if è soddisfatta. Ossia se condizionale esegui se vero code.
#!/usr/bin/ruby $debug=1 print "debug\n" if $debug
Il risultato di esempio di output sopra:
debug
unless condizionale [then] code [else code ] fine
l'espressione unless e l'istruzione if sono opposte, ossia se condizionale se falso, esegui code. Se condizionale esegui la clausola else specificata se vero code.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 unless x>2 puts "x minore di 2" altrimenti puts "x maggiore di 2" fine
Il risultato di output dell'esempio sopra è:
x minore di 2
code unless condizionale
se condizionale se falso, esegui code.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $var = 1 print "1 -- questa riga viene output\n" if $var print "2 -- questa riga non viene output\n" unless $var $var = false print "3 -- questa riga viene output\n" unless $var
Il risultato di esempio di output sopra:
1 -- questa riga viene output 3 -- questa riga viene output
case espressione [when espressione [, espressione ...] [then] code ]... [else code ] fine
case esamina prima un espressione per fare la comparazione e poi scegliere la branca in base al risultato della comparazione.
utilizza ===operatore di confronto when specificato espressioneesegui se coincidente when Parte del contenuto.
Di solito omittiamo la parola chiave then. Se si desidera scrivere l'espressione when completa su una singola riga, è necessario separare l'espressione condizionale dal blocco di codice con then. Ecco un esempio:
when a == 4 then a = 7 end
Quindi:
case expr0 when expr1, expr2 stmt1 when expr3, expr4 stmt2 altrimenti stmt3 fine
In sostanza è simile a:
_tmp = expr0 if expr1 === _tmp || expr2 === _tmp stmt1 elsif expr3 === _tmp || expr4 === _tmp stmt2 altrimenti stmt3 fine
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $age = 5 caso $age quando 0 .. 2 puts "infante" quando 3 .. 6 puts "bambino" quando 7 .. 12 puts "child" quando 13 .. 18 puts "ragazzo" altrimenti puts "altri segmenti di età" fine
Il risultato di output dell'esempio sopra è:
bambino
Quando il parte "espressione" del caso viene omesso, viene calcolato il primo quando la parte condizionale è vera.
foo = false bar = true quu = false caso quando foo allora puts 'foo è vero' quando bar allora puts 'bar è vero' quando quu allora puts 'quu è vero' fine # 显示 "bar è vero"