我从小基础开始,并且在处理if,else,then和elseif语句时遇到了一些不好的时间。我有这个代码,当用户输入形状的第一个字母时,应该用乌龟绘制不同的形状。我已经使用路灯这种类型的代码,但我需要使用这个新代码朝着正确的方向前进。我有所写的形状的所有代码,但每次我输入形状的字母时,它只绘制第一个形状,即三角形。有一次,我的代码设置不同,所有的形状都会被拉到彼此的旁边。我想我正走在正确的轨道上。
'代码有什么作用? '让用户决定他们想要什么样的形状,龟会画出它
T= "Triangle"
P= "Parallelogram"
S= "Square"
TextWindow.ForegroundColor= "magenta"
TextWindow.WriteLine("What shape do you want to draw?")
TextWindow.Write (" Choose [T] for triangle, [P] for Parallelogram or [S] for Square : ")
shape=textwindow.Read()
If T = "Triangle" Then
Turtle.Speed=9
GraphicsWindow.Width = 500
GraphicsWindow.Height=500
Turtle.PenUp()
Turtle.Move(200)
Turtle.TurnRight()
Turtle.Move(145)
Turtle.TurnRight()
Turtle.PenDown()
Turtle.Move(320)
Turtle.TurnRight()
Turtle.Move(320)
Turtle.Turn(135)
Turtle.Move(451)
Turtle.Hide()
elseif P = "Parallelogram" Then
Turtle.Speed=9
GraphicsWindow.Width = 500
GraphicsWindow.Height=500
Turtle.TurnLeft()
Turtle.PenDown()
Turtle.Move(200)
Turtle.Turn(120)
Turtle.Move(120)
Turtle.Turn(60)
Turtle.Move(200)
Turtle.Turn(120)
Turtle.Move(120)
Elseif S = "Square" then
Turtle.Speed=9
Turtle.TurnLeft()
Turtle.PenDown()
Turtle.Move(200)
Turtle.TurnRight()
Turtle.Move(200)
Turtle.TurnRight()
Turtle.Move(200)
Turtle.TurnRight()
Turtle.Move(200)
EndIf
答案 0 :(得分:0)
查看if语句中的测试。例如,第一个测试一个名为T的变量(其值为“Triangle”)对着字符串“Triangle”。这将永远是真的,因此它将始终绘制一个三角形,而不是进一步。你真的想要比较字符串“Triangle”?您刚从用户收到的变量...而不是变量T,P和S.
P.S。如果可能的话,养成使用一致缩进的习惯,它将帮助您更轻松地查看代码的结构。一切顺利!
答案 1 :(得分:0)
测试"形状":
If shape = "T" Then
Turtle.Speed = 9
GraphicsWindow.Width = 500
...
Elseif shape = "P" Then
Turtle.Speed = 9
GraphicsWindow.Width = 500
...
Elseif shape = "S" Then
Turtle.Speed = 9
Turtle.TurnLeft()
...
End If