khác
Translation status: Tiếng Việt reader-locale proof. Term names and code fences follow the vi pack; supporting prose may still be English.
Runs the fallback branch when preceding conditional branches do not match.
Aliases: else, otherwise
Syntax: khác <block>
Category#
control-flow
Related#
Examples#
radix/corpus/secus/secus.fab (canonical · keyword)#
Runs the fallback branch when preceding conditional branches do not match.
# =============================================================================
# khác — Runs the fallback branch when preceding conditional branches do not
# match.
# =============================================================================
#
# What this teaches:
# • Conditional fallback — `khác` provides the else/otherwise branch that
# runs when no preceding `nếu` or `nếukhôngthì` condition matched
# • Always comes last in an if-else chain; takes a block body
#
# Common mistakes:
# • Writing `khác nếu` instead of the canonical `nếukhôngthì` for else-if branches — `khác` must always be final.
#
# See also: nếu, nếukhôngthì
# =============================================================================
# khác — final else branch
#
# GRAMMAR:
# elseClause :← 'khác' block
#
# EXPECTED OUTPUT:
# Scalar stdout smoke (see body).
#
# BACKEND:
# Cross-ref: nếu/secus.fab.
#
main {
const int hour ← 23
if hour ≺ 12 {
print "morning"
}
else {
print "afternoon-or-later"
}
}Expected output:
afternoon-or-later
radix/corpus/si/secus.fab (canonical · keyword)#
Runs the fallback branch when preceding conditional branches do not match.
# =============================================================================
# khác — Runs the fallback branch when preceding conditional branches do not
# match.
# =============================================================================
#
# What this teaches:
# • If-else branches — `nếu { } khác { }` provides two-way branching; exactly
# one arm executes
# • `nếukhôngthì` chains additional conditions before the final `khác` fallback;
# first match wins
#
# Common mistakes:
# • TODO: placing `khác` before a `nếukhôngthì` branch — `khác` must always be the
# final clause
#
# See also: nếu, nếukhôngthì
# =============================================================================
# si-secus (if-else) conditionals
#
# nếu <condition> { <body> } -- two-way branch
# khác { <body> }
# nếu <cond1> { } -- else-if chain
# nếukhôngthì <cond2> { }
# khác { }
#
# GRAMMAR:
# ifStmt :← 'nếu' expr block ('nếukhôngthì' expr block)* ('khác' block)?
#
# EXPECTED OUTPUT:
# Grade and weather messages for sample scores and temperatures.
main {
# Two-way branch: exactly one arm runs
const int puncta ← 85
if puncta ≥ 90 {
print "gradus: A"
}
else {
# 85 < 90 → this arm
print "gradus: B aut minor"
}
# Each branch may contain several statements
const int calor ← 22
if calor ≻ 30 {
print "calidum"
print "aquam bibe"
}
else {
# 22 ≤ 30
print "commodum"
print "caelum mite"
}
# nếukhôngthì chains additional tests; first match wins (75 → C)
const int gradus ← 75
if gradus ≥ 90 {
print "A - optimum"
}
elif gradus ≥ 80 {
print "B - bonum"
}
elif gradus ≥ 70 {
print "C - satis"
}
elif gradus ≥ 60 {
print "D - transit"
}
else {
print "F - deficit"
}
}Expected output:
gradus: B aut minor
commodum
caelum mite
C - satis