มิฉะนั้น
Translation status: ภาษาไทย reader-locale proof. Term names and code fences follow the th-TH pack; supporting prose may still be English.
Runs the fallback branch when preceding conditional branches do not match.
Aliases: else, otherwise
Syntax: มิฉะนั้น <block>
Category#
control-flow
Related#
Examples#
radix/corpus/secus/secus.fab (canonical · keyword)#
Runs the fallback branch when preceding conditional branches do not match.
# =============================================================================
# มิฉะนั้น — Runs the fallback branch when preceding conditional branches do not
# match.
# =============================================================================
#
# What this teaches:
# • Conditional fallback — `มิฉะนั้น` provides the else/otherwise branch that
# runs when no preceding `ถ้า` or `ถ้าไม่ก็` condition matched
# • Always comes last in an if-else chain; takes a block body
#
# Common mistakes:
# • Writing `มิฉะนั้น ถ้า` instead of the canonical `ถ้าไม่ก็` for else-if branches — `มิฉะนั้น` must always be final.
#
# See also: ถ้า, ถ้าไม่ก็
# =============================================================================
# มิฉะนั้น — final else branch
#
# GRAMMAR:
# elseClause :← 'มิฉะนั้น' block
#
# EXPECTED OUTPUT:
# Scalar stdout smoke (see body).
#
# BACKEND:
# Cross-ref: ถ้า/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.
# =============================================================================
# มิฉะนั้น — Runs the fallback branch when preceding conditional branches do not
# match.
# =============================================================================
#
# What this teaches:
# • If-else branches — `ถ้า { } มิฉะนั้น { }` provides two-way branching; exactly
# one arm executes
# • `ถ้าไม่ก็` chains additional conditions before the final `มิฉะนั้น` fallback;
# first match wins
#
# Common mistakes:
# • TODO: placing `มิฉะนั้น` before a `ถ้าไม่ก็` branch — `มิฉะนั้น` must always be the
# final clause
#
# See also: ถ้า, ถ้าไม่ก็
# =============================================================================
# si-secus (if-else) conditionals
#
# ถ้า <condition> { <body> } -- two-way branch
# มิฉะนั้น { <body> }
# ถ้า <cond1> { } -- else-if chain
# ถ้าไม่ก็ <cond2> { }
# มิฉะนั้น { }
#
# GRAMMAR:
# ifStmt :← 'ถ้า' expr block ('ถ้าไม่ก็' expr block)* ('มิฉะนั้น' 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"
}
# ถ้าไม่ก็ 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