这段伪代码的while true 是什么意思吗,判断谁是对的
vb吧
全部回复
仅看楼主
level 1
东岭一哥
楼主
这段伪代码的while true 是什么意思吗,判断谁是对的然后才运行后面的代码?
2020年05月20日 14点05分
1
level 11
余思培
抱歉,没看清题是伪代码
我翻译成VB你看看对不对
x = int(inputbox("提示信息","标题","默认值","X","Y"))
y = 0
i = 0
Do While True
s = 1
If x Mod 2 = 0 Then
s = 0
y = y + (s)*10^i
x = x\2
i = i + 1
If x = 0 Then Exit Do
Loop
Print y
2020年05月20日 14点05分
3
余思培
这儿"X","Y"代表x坐标y坐标,我怕理解时和下面的x,y混淆,所以加入了引号,也所以这一句实际是不能运行的
2020年05月20日 14点05分
余思培
这种只有缩进,没有语句块或结束标志的真的有点郁闷,我看漏了一个缩进,If x Mod 2 = 0 Then s = 0,也即把原来这句后面的s = 0移到后面去
2020年05月20日 14点05分
东岭一哥
我搬到运行环境里面运行他说loop没有DO是怎么回事
2020年05月20日 15点05分
余思培
@东岭一哥
Do While......Loop是一组,While......Wend是一组,这里用到了跳出循环,只有选择前面那组,你自己再看一下搬运的代码哪儿有没有问题
2020年05月20日 15点05分
level 11
余思培
这段伪代码中的while true不是判断谁为真,而是表示while条件始终为真即无限循环
而后面的break则用于跳出循环
2020年05月20日 14点05分
4
level 1
东岭一哥
楼主
@余思培
你看看我哪错了,都有了啊
2020年05月20日 15点05分
5
余思培
两个If...Then后面直接跟语句
2020年05月20日 15点05分
余思培
If x Mod 2 = 0 Then s = 0
2020年05月20日 15点05分
余思培
If x = 0 Then Exit Do
2020年05月20日 15点05分
东岭一哥
@余思培
直接跟和放在下一行有什么区别嘛?
2020年05月20日 15点05分
level 8
mijing2000
while true
就是死循环,不过循环内部符合条件就break
2020年05月21日 00点05分
6
东岭一哥
就是不用判断条件直接进去循环吗?
2020年05月21日 13点05分
mijing2000
@东岭一哥
你这么理解也行,因为条件永远是TRUE
2020年05月21日 23点05分
level 11
璐村惂鐢ㄦ埛_0748V5Z馃惥
While True可以省略不要。
反正while后在语法上,只要求一个“逻辑表达式”,true就是一个逻辑表达式。是没有语法问题的。但是否符合编程意图,就是另一回事了。
2020年05月21日 00点05分
7
余思培
也就是在需要死循环的时候,直接Do......Loop就可以了吗?我没有系统性的学过VB,所以有些东西不是很清楚。
2020年05月21日 04点05分
璐村惂鐢ㄦ埛_0748V5Z馃惥
@余思培
可以这么说。这样do……loop不写条件,也可以像一楼那样,在中间判断条件exit do,这样循环还是有出口的。
2020年05月21日 13点05分
level 9
klimaa
这是c的伪代码,对学vb的人来说有误导。
2020年05月21日 04点05分
8
1