2016-08-05 10 views
0

zugewiesen habe Ich bin neu in Ruby. Ich habe den folgenden Code-Block:Warum bekomme ich einen ungültigen Wertausdruck, obwohl ich den Wert

a = 10 

while a < 20 do 
puts "True" 
a++ 

next unless a == 12 
puts "This is not 12" 
end 


$end 

Aber ich bin immer leer Wertausdruck für a ==12 .i 10 hinein zugewiesen zu beginnen, damit ich sehe nicht, warum ich nichtig Wert bin immer.

+1

'' ++ Operator in Ruby nicht existiert – Ursus

+0

'würde $ end' ersetzen soll erhöhen eine Ausnahme, wenn "aa" durch "a + = 1" ersetzt wurde –

Antwort

0

Angenommen

a = 2 

Die folgenden sind alle äquivalent, Return 5. Daher

a++ 3 
a + +3 
a + + 
3 
a++ 

3 

,

a++ 

next unless a == 12 

ist die gleiche wie

a + +next unless a == 12 

Dies erzeugt eine Ausnahme, weil "void value expression"next unless a == 12 keinen Wert zurück (nach dem Verfahren gesendet werden :+).

Das Update, natürlich, a++ mit

a = a + 1 

oder deren Abkürzung

a += 1 
Verwandte Themen