使这个小基本代码工作的指针

时间:2014-07-09 06:49:52

标签: if-statement basic

我从小基础开始,并且在处理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

2 个答案:

答案 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