tcl常用命令笔记--运算符&条件语句

运算符

运算符是告诉编译器执行特定的数学或逻辑操作的符号,类型有:算术运算符,关系运算符,逻辑运算符,位运算符,三元运算符。

算术运算符

运算符

描述

+

两个操作数相加

-

第一个操作数减第二个操作数

*

两个操作数相乘

/

分子除以分母

%

取余

关系运算符

运算符

描述

==

检查前后是否相等,若相等则为1

!=

检查前后是否不相等,若不相等则为1

>

检查前操作数的值是否大于后操作数的值,若大于则为1

<

检查前操作数的值是否小于后操作数的值,若小于则为1

>=

检查前操作数的值是否大于或等于后操作数的值,若是则为1

<=

检查前操作数的值是否小于或等于后操作数的值,若是则为1

一般搭配if或while等条件语句使用,例如:

#!/usr/bin/tclsh

set var1 10

set var2 12

if {$var2 > $var1} {

 puts "var2 > var1"

} else {

 puts "var1 > var2"

}

执行结果为:

var2 > var1

逻辑运算符

运算符

描述

&&

逻辑与,前后都为真则结果为真

||

逻辑或,前后有一个为真则结果为真

逻辑非,取反

位运算符

将操作数以二进制按位进行逻辑运算

运算符

描述

&

按位与

|

按位或

^

按位异或

<<

左侧操作数按位左移右操作数指定的位数,左操作数空位右侧补零

>>

按位右移左侧补零

三元运算符

运算符

描述

?:

条件?为真执行A:否则执行B

#!/usr/bin/tclsh

set var1 1

puts "[expr $var1 == 10 ? 20 : 10]"

执行结果为:

10

条件语句

If

if语句由一个布尔表达式和后面的一个或多个语句组成,基本结构如下:

if {condition} {

Body...

} else {

...

}

上面的结构中else部分不是必须的,即代码中可以只出现if,后不出现else也是可以的,而且还有elseif结构

if {condition1} {

...

} elseif {condition2} {

...

}

除此以外,If语句也可以嵌套使用

#!/usr/bin/tclsh

set var1 10

set var2 5

set var3 20

if {$var1 > $var2} {

 if {[expr $var1 + $var2] > $var3} {

  puts "var1 + var2 = [expr $var1 + $var2]"

 } else {

  puts "$var3"

 }

} else {

 puts "var1 < var2"

}

执行结果为

20

switch

switch命令用于根据变量的值执行不同的代码,结构如下:

switch value {

    pattern1 {

        # 当 value 匹配 pattern1 时执行的代码

    }

    pattern2 {

        # 当 value 匹配 pattern2 时执行的代码

    }

    default {

        # 当 value 不匹配任何模式时执行的代码

    }

}

switch命令默认使用 glob匹配模式,类似于 shell 中的通配符匹配,也可以使用 “-regexp”选项启用正则表达式匹配,”-exact”选项用于精确匹配。switch命令也支持嵌套。

#!/usr/bin/tclsh

set value 18

switch $value {

    name{

        puts "name is $value"

    }

    18 {

         puts "age is $value"

    }

    default {

        puts "..."

    }

}

执行结果为

age is 18

你可能感兴趣的:(tcl常用命令笔记,笔记)