博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tcl命令操作实验-----(6)---case foreach
阅读量:6607 次
发布时间:2019-06-24

本文共 1517 字,大约阅读时间需要 5 分钟。

hot3.png

Vivado% case abcd in a { puts 111} *bc* {puts 333} default {puts xxx}333

为什么有输出333呢?

Tcl的foreach语句:

Vivado% set lt {1,2,3,4}1,2,3,4Vivado% foreach i $lt {puts "value=$i"}value=1,2,3,4

为什么只输出一行value=1,2,3,4,而不是输出value=1 value=2 value=3 value=4呢?(后来发现列表变量定义有问题:set lt {1 2 3 4}才是正确定义列表变量的语法)

Vivado% foreach i {0 3 2 1} {switch $i {1 {puts 111}2 {puts 222}3 {puts 333}default {puts xxx}}}xxx333222111

将语句改为上面的形式,则输出就有四行结果显示了。

还做了一些实验,发现现象如下:

Vivado% foreach i {0,1,2,3} {puts "value=$i"}value=0,1,2,3Vivado% foreach i $lt {switch $i {1 {puts 111}2 {puts 222}3 {puts 333}default {puts xxx}}}xxxVivado% foreach i lt {switch $i {1 {puts 111}2 {puts 222}3 {puts 333}default {puts xxx}}}xxx

始终不能理解上面的实验结果?(也是列表变量的定义语法有问题 )

根据  上的代码做如下实验:

Vivado% set values {1 3 4 7 2 4 6 8}1 3 4 7 2 4 6 8Vivado% foreach x $values {puts "$x/t [expr {$x**2}]/t [expr {$x**3}]"}1/t 1/t 13/t 9/t 274/t 16/t 647/t 49/t 3432/t 4/t 84/t 16/t 646/t 36/t 2168/t 64/t 512

怎么又能够输出多行多个值呢?(也是列表变量定义原因)

 

break语句:中断循环执行并退出

continue语句:下一循个迭代环

Vivado% foreach x $values {if {$x==6} {break}if {$x==4} {continue}puts "$x/t [expr {$x**2}]/t [expr {$x**3}]"}1/t 1/t 13/t 9/t 277/t 49/t 3432/t 4/t 8

上面代码每次遇到4的时候都会跳过。

while循环语句:

Vivado% set i 11Vivado% while {$i != 5} {puts $iincr i}1234

如果按下面的语法书写代码,全部都不正确:

Vivado% while $i != 5 {puts $iincr i}wrong # args: should be "while test command"Vivado% while ($i != 5) {puts $iincr i}wrong # args: should be "while test command"Vivado% while "$i != 5" {puts $iincr i}

 

转载于:https://my.oschina.net/u/2963604/blog/2208445

你可能感兴趣的文章
如何生成addm报告
查看>>
MongoDB GridFS 初探
查看>>
oracle自动共享内存管理
查看>>
我的友情链接
查看>>
Metasploit 4下无法使用db_autopwn命令的解决
查看>>
挂载与卸载
查看>>
CA证书服务器(3) 数字签名和消息摘要算法
查看>>
RHEL6.3配置文件共享(6) Samba服务之四
查看>>
C++标准库之mutex
查看>>
R语言编程艺术(2)R中的数据结构
查看>>
关于内存溢出产生的死循环
查看>>
haproxy介绍及基本配置
查看>>
ifconfig Command not found 未找到命令
查看>>
利用jQuery实现全选、全不选、反选(checkBox)
查看>>
基于ITIL的医院信息化服务管理实践(客户说)
查看>>
PPP PAP 认证 CHAP 认证
查看>>
shell备份msyql数据库
查看>>
ovirt官方安装文档 附录G
查看>>
9.4/9.5 sed
查看>>
如何挂载另一个lvm硬盘
查看>>