if

1
2
3
4
5
6
7
8
9
;Syntax
;(if cond
;then-branch
;else-branch)
(define p 80)
(if (> p 70)
'safe
'unsafe)
; ==> safe

when & unless

只需要基本语句then branch时,使用whenelse

1
2
3
4
5
6
7
8
9
10
11
(when (< a b)
(display "a is")
(display a)
(display "b is")
(display b))
; ==
(unless (>= a b)
(display "a is")
(display a)
(display "b is")
(display b))

cond

cond结构在表示多重if时很方便

1
2
3
(cond ((char<? c #\c) -1)
((char=? c #\c) 0)
(else 1))

case的每个分支都是begin结构

case

多重条件判断为测试结构时,使用case

1
2
3
4
(case c
((#\a) 1)
((#\b) 2)
(else 3))

and & or

从左向右计算,当有式子满足结束条件时,将其他条件判断短路