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

If statement 使这个小的基本代码工作的指针,if-statement,basic,If Statement,Basic,我从small basic开始,在处理if、else、then和elseif语句时遇到了一些麻烦。我有一段代码,当用户输入形状的第一个字母时,应该用turtle绘制不同的形状。我已经在街灯上使用了这种类型的代码,但我需要用这种新代码朝着正确的方向前进。我已经编写了所有形状的代码,但是每次我输入形状的字母时,它只会绘制第一个形状,即三角形。有一次,我将代码设置为不同的形式,所有的形状都会被画在一起。我想我走对了 '代码的作用是什么? '让用户决定他们想要什么形状,海龟会画出来 T= "Triang

我从small basic开始,在处理if、else、then和elseif语句时遇到了一些麻烦。我有一段代码,当用户输入形状的第一个字母时,应该用turtle绘制不同的形状。我已经在街灯上使用了这种类型的代码,但我需要用这种新代码朝着正确的方向前进。我已经编写了所有形状的代码,但是每次我输入形状的字母时,它只会绘制第一个形状,即三角形。有一次,我将代码设置为不同的形式,所有的形状都会被画在一起。我想我走对了

'代码的作用是什么? '让用户决定他们想要什么形状,海龟会画出来

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

查看if语句中的测试。例如,第一个测试名为T的变量,该变量的值三角形与字符串三角形相对。这永远是真的,所以它总是画一个三角形,不会再进一步。你到底想把什么与弦三角形相比较?您刚从用户处收到的变量。。。不是变量T、P和S

如果可能的话,养成使用一致缩进的习惯,这将帮助您更容易地看到代码的结构。祝你一切顺利

测试形状:

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

当然应该是像shape=T之类的东西?你只是把变量T和值三角形进行比较,值三角形一直都是真的,现在我知道了,一开始我有点困惑,因为我认为我必须对每个形状问一个问题。试着想象一下,你是一个程序,一次一个地执行你的指令,每个变量都是一个鞋盒,只有当你到达代码中的那一行时,你才会查看它,因为它们可能在你上次查看后发生了变化。我知道这完全过于简单,但这种基本的桌面检查或手动调试从长远来看会对您有很大帮助。