0
我无法将此程序从if-else语句转换为switch语句。任何帮助,将不胜感激。将if-else语句转换为switch语句
#!/bin/bash
for x in [email protected]
do
array[$i]=$x
i=$((i+1))
done
# initial state
state=S0
for((i=0;i<${#array[@]};i++))
do
if [ $state == S0 ]
then
if [ ${array[$i]} == I0 ]
then
state=S1
output[$i]=O1
elif [ ${array[$i]} == I1 ]
then
state=S0
output[$i]=O0
fi
elif [ $state == S1 ]
then
if [ ${array[$i]} == I0 ]
then
state=S1
output[$i]=O1
elif [ ${array[$i]} == I1 ]
then
state=S0
output[$i]=O0
fi
fi
done
echo "final state="$state
echo "output="${output[@]}
为那些谁知道有关脚本..这个脚本有关的有限状态机..这个脚本有两种状态我要转换为case语句,因此它可以是可读的,更快尤其是对大项目不是这样一。
你有什么麻烦? – chepner
请勿标记垃圾邮件。这与Linux,Emacs或SQL CASE语句无关。我删除了无关标签。 – Chris