- Tcl 教程
- Tcl - 首页
- Tcl - 概述
- Tcl - 环境设置
- Tcl - 特殊变量
- Tcl - 基本语法
- Tcl - 命令
- Tcl - 数据类型
- Tcl - 变量
- Tcl - 运算符
- Tcl - 决策
- Tcl - 循环
- Tcl - 数组
- Tcl - 字符串
- Tcl - 列表
- Tcl - 字典
- Tcl - 过程
- Tcl - 包
- Tcl - 命名空间
- Tcl - 文件 I/O
- Tcl - 错误处理
- Tcl - 内置函数
- Tcl - 正则表达式
- Tk 教程
- Tk - 概述
- Tk - 环境
- Tk - 特殊变量
- Tk - 小部件概述
- Tk - 基本小部件
- Tk - 布局小部件
- Tk - 选择小部件
- Tk - 画布小部件
- Tk - Mega 小部件
- Tk - 字体
- Tk - 图片
- Tk - 事件
- Tk - 窗口管理器
- Tk - 几何管理器
- Tcl/Tk 有用资源
- Tcl/Tk - 快速指南
- Tcl/Tk - 有用资源
- Tcl/Tk - 讨论
Tcl - 运算符优先级
运算符优先级决定了表达式中各项的组合方式。这影响了表达式的计算方式。某些运算符比其他运算符具有更高的优先级;例如,乘法运算符的优先级高于加法运算符。
例如:x = 7 + 3 * 2; 这里,x 被赋值为 13,而不是 20,因为运算符 * 的优先级高于 +,所以它首先计算 3 * 2,然后加到 7 中。
这里,优先级最高的运算符出现在表格的顶部,优先级最低的出现在底部。在一个表达式中,优先级较高的运算符将首先被计算。
类别 | 运算符 | 结合性 |
---|---|---|
一元 | + - | 从右到左 |
乘法 | * / % | 从左到右 |
加法 | + - | 从左到右 |
移位 | << >> | 从左到右 |
关系 | < <= > >= | 从左到右 |
相等 | == != | 从左到右 |
按位与 | & | 从左到右 |
按位异或 | ^ | 从左到右 |
按位或 | | | 从左到右 |
逻辑与 | && | 从左到右 |
逻辑或 | || | 从左到右 |
三元 | ?: | 从右到左 |
示例
尝试以下示例以了解 Tcl 语言中可用的运算符优先级:
#!/usr/bin/tclsh set a 20 set b 10 set c 15 set d 5 set e [expr [expr $a + $b] * $c / $d ] ;# ( 30 * 15 ) / 5 puts "Value of (a + b) * c / d is : $e\n" set e [expr [expr [expr $a + $b] * $c] / $d] ;# (30 * 15 ) / 5] puts "Value of ((a + b) * c) / d is : $e\n" set e [expr [expr $a + $b] * [expr $c / $d] ] ;# (30) * (15/5) puts "Value of (a + b) * (c / d) is : $e\n" set e [expr $a + [expr $b * $c ] / $d ] ;# 20 + (150/5) puts "Value of a + (b * c) / d is : $e\n"
编译并执行上述程序时,将产生以下结果:
Value of (a + b) * c / d is : 90 Value of ((a + b) * c) / d is : 90 Value of (a + b) * (c / d) is : 90 Value of a + (b * c) / d is : 50
tcl_operators.htm
广告