루비 조건부 판단
Ruby는 몇 가지 매우 일반적인 조건부 구조를 제공합니다. 여기에서는 Ruby에서 사용할 수 있는 모든 조건문과 수정자를 설명합니다.
Ruby if...else 문
구문
if conditional [then] code... [elsif conditional [then] code...]... [else code...] end
if 표현식은 조건부 실행에 사용됩니다. false 및 nil 값은 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 $debugE 이상의 인스턴스 출력 결과:
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
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 문
case expression [when expression [, expression ...] [then] code ]... [else code ] endcase는 먼저
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
위 예제 출력은 다음과 같습니다:
小孩