루비 조건부 판단


Ruby는 몇 가지 매우 일반적인 조건부 구조를 제공합니다. 여기에서는 Ruby에서 사용할 수 있는 모든 조건문과 수정자를 설명합니다.

Ruby if...else

구문

if conditional [then]
	  code...
[elsif conditional [then]
	  code...]...
[else
	  code...]
end

if 표현식은 조건부 실행에 사용됩니다. ​​falsenil 값은 false이고 다른 값은 모두 true입니다. Ruby는 else if와 elif가 아닌 elsif를 사용합니다.

conditional이 true이면 code를 실행합니다. conditional이 true가 아닌 경우 else 절에 지정된 code를 실행합니다.

보통 예약어는 생략하는 경우가 많습니다. 완전한 if 수식을 한 줄에 작성하려면 조건식과 프로그램 블록을 then으로 구분해야 합니다. 아래와 같이:

if a == 4 then a = 7 end

Example

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

x=1
if x > 2
   puts "x 大于 2"
elsif x <= 2 and x!=0
   puts "x 是 1"
else
   puts "无法得知 x 的值"
end


위 예제의 출력 결과:

x 是 1

Ruby if Modifier

Grammar

code if condition

if 수정자 구문은 if의 왼쪽 부분만 실행됨을 의미합니다. if 오른쪽의 조건이 참인 경우. 즉, conditional이 true이면 code를 실행합니다. Re 예

#!/usr/bin/ruby

$debug=1
print "debug\n" if $debug
E 이상의 인스턴스 출력 결과:

debug
E

RUBY

Unless

속도

unless conditional [then]
   code
[else
   code ]
end

및 IF 유형, 즉

Conditional이 false인 경우 Code

를 실행합니다.

conditional

이 true인 경우 else 절에 지정된

code를 실행합니다. Example

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

x=1
unless x>2
   puts "x 小于 2"
 else
  puts "x 大于 2"
end
위 예제의 출력 결과는 다음과 같습니다.

x 小于 2

Ruby

unless

Modifier

Syntax

code unless conditional

conditional이 false인 경우 code

를 실행합니다.

Example

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$var =  1
print "1 -- 这一行输出\n" if $var
print "2 -- 这一行不输出\n" unless $var

$var = false
print "3 -- 这一行输出\n" unless $var
위 예제의 출력 결과:

1 -- 这一行输出
3 -- 这一行输出

Ruby

case


Grammar

case expression
[when expression [, expression ...] [then]
   code ]...
[else
   code ]
end

case는 먼저

expression에 대해 일치 판단을 수행한 다음 다음을 기반으로 분기 선택을 수행합니다. 일치하는 결과.

===

연산자를 사용하여

when에서 지정한 expression

을 비교하고 일치하면

when 부분의 내용을 실행합니다. 보통 예약어는 생략하는 경우가 많습니다. 완전한 When 표현식을 한 줄에 작성하려면 조건식과 프로그램 블록을 then으로 구분해야 합니다.

when a == 4 then a = 7 end
그래서:
case expr0
when expr1, expr2
   stmt1
when expr3, expr4
   stmt2
else
   stmt3
end
기본적으로 다음과 같습니다:
_tmp = expr0
if expr1 === _tmp || expr2 === _tmp
   stmt1
elsif expr3 === _tmp || expr4 === _tmp
   stmt2
else
   stmt3
end

예제

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$age =  5
case $age
when 0 .. 2
    puts "婴儿"
when 3 .. 6
    puts "小孩"
when 7 .. 12
    puts "child"
when 13 .. 18
    puts "少年"
else
    puts "其他年龄段的"
end

위 예제 출력은 다음과 같습니다:

小孩

케이스의 "표현식" 부분이 생략되면 다음과 같이 됩니다. 평가됨 조건 부분이 참인 경우 첫 번째 표현입니다.

rreee