开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4618|回复: 10
收起左侧

[已解决] 易语言循环变量的一个问题

 关闭 [复制链接]
结帖率:85% (41/48)
发表于 2015-10-22 23:28:30 | 显示全部楼层 |阅读模式   河北省石家庄市
5精币
Private Sub Command1_Click()
For x = 1 To 10 Step 1
    a = a + 1
    MsgBox x
    If a = 2 Then
        x = 5
    End If
Next
End Sub
将vb的这个for循环如何用易语言来写。以下是我写的,不对。纠结了一天了,望指教。
QQ截图20151022232231.png
错误之处在于,vb可以在循环中改变 “循环变量x” 的值。但易语言是不行的,可以通过弹出框来看出。
vb结果是12678910   ,而易语言是 12345678910 。

请问,在易语言中,如果达到像vb这种目的。望指教。

最佳答案

查看完整内容

.版本 2 .局部变量 a .局部变量 x x = 1 .判断循环首 (x ≤ 10) 信息框 (到文本 (x), 0, , ) .如果真 (x = 2) x = 5 .如果真结束 x = x + 1 .判断循环尾 ()

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:83% (10/12)

签到天数: 2 天

发表于 2015-10-22 23:28:31 | 显示全部楼层   北京市北京市
  
变量名类 型静态数组备 注
a  
x  
x = 1
判断循环首 (x ≤ 10)
信息框 (到文本 (x), 0, , )
如果真 (x = 2)
x = 5
x = x + 1
判断循环尾 ()

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:85% (41/48)
 楼主| 发表于 2015-10-22 23:39:23 | 显示全部楼层   河北省石家庄市
QQ截图20151022233549.png
这是我刚刚想到的,因为不能编辑帖子,就发到2楼了,但是我觉得这样依然不太好,vb里通过重新给 循环变量x赋值,可以省去好几步的循环(x从2直接到6),但是如果按我上面的方法,x依然要经历345这三次循环。纠结。望指教。
回复

使用道具 举报

结帖率:100% (4/4)
发表于 2015-10-22 23:43:40 | 显示全部楼层   浙江省杭州市
那就自建变量,应该是X变量在进入循环前的值被PUSH了,到循环尾的时候又POP了,如果是这样你怎么改都没用!
你可以把X放到循环里面自己做自增

补充内容 (2015-10-22 23:45):
说错了..这样循环步数不会变
回复

使用道具 举报

结帖率:100% (4/4)
发表于 2015-10-22 23:54:09 | 显示全部楼层   浙江省杭州市
  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
x整数型 
a整数型 
变量循环首 (1, 10, 1, x)
a = a + 1
如果真 (a = 2)
变量循环首 (5, 10, 1, x)
调试输出 (x)
变量循环尾 ()
跳出循环 ()
调试输出 (x)
变量循环尾 ()


i支持库列表   支持库注释   
spec特殊功能支持库


办法还是有的,只不过难看点
回复

使用道具 举报

结帖率:83% (10/12)

签到天数: 2 天

发表于 2015-10-23 00:43:23 | 显示全部楼层   北京市北京市
  
变量名类 型静态数组备 注
a  
x  
判断循环首 (x < 10)
x = x + 1
信息框 (到文本 (x), 0, , )
如果真 (x = 2)
x = 5

判断循环尾 ()

回复

使用道具 举报

结帖率:75% (3/4)
发表于 2015-10-23 00:51:12 | 显示全部楼层   北京市北京市
不会变的.版本 2

.局部变量 a
.局部变量 x

.判断循环首 (x < 10)
    x = x + 1
    信息框 (到文本 (x), 0, , )
    .如果真 (x = 2)
        x = 5
    .如果真结束

.判断循环尾 ()
这是对的
回复

使用道具 举报

结帖率:75% (3/4)
发表于 2015-10-23 00:51:30 | 显示全部楼层   北京市北京市
仔细看看。。
回复

使用道具 举报

结帖率:85% (41/48)
 楼主| 发表于 2015-10-23 01:12:53 | 显示全部楼层   河北省石家庄市
,大家这么晚还回帖,先感动一下,。
qiyisoft 和shandmail 的意思我都明白了,qiyisoft的方法我再网上也见过,是通过改变初始值来的。shandmail是通过while循环来的。我都理解。
但是如果在循环中要多次遇到判断,多次对循环变量进行“跳跃”(比如本题目中的从2到6),那就要一层一层好多层的循环,来改变初始值。那工程量也可想而知。

而通过do或while的形式(易语言中的循环判断和判断循环)可能就相对好一些,毕竟一切循环都可以转换成do。也正因为比较原始,不得不利用更多的变量和运算来辅Zhu。比如起始目标、递增值等。

所以,难道易语言就没有更为方便的、像vb那样来“中途”修改变量的方法吗?不都说易语言和vb很多想通吗?原谅我开始学习的是vb。我觉得在变量循环中,中途修改变量进度,是一个很实用也很合理的情况。如我开始写的那个很简单的vb的for循环,很容易就把变量中途修改了。
回复

使用道具 举报

结帖率:83% (10/12)

签到天数: 2 天

发表于 2015-10-23 03:07:01 | 显示全部楼层   北京市北京市
  
变量名类 型静态数组备 注
a  
x  
变量循环首 (1, 10, 1, x)
a = a + 1
信息框 (到文本 (a), 0, , )
如果真 (x = 2)
a = 5
如果真 (a > 10)
跳出循环 ()

变量循环尾 ()
可以把 a x 用途颠倒下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表