列出的最后一个for循环(int变量n和o).. 我对任何类型的编程都很陌生,在我们的入门课程中,我们使用Dr Java和一些Basic媒体来制作本质上是乌龟笔的东西。它在显示器上绘制东西。
我的最后一个循环似乎(在我看来)说它应该在n< = o时开始,它们是第一个。所以它启动了。然后它应该更新,以便n = 2,这不是< = o(1).. 但它只是无限循环最后一部分...
import Media.*;
import static java.lang.Math.*;
public class DiamondTiles2 {
private TurtleDisplayer display;
private Turtle steve;
public DiamondTiles2 (){
display = new TurtleDisplayer();
steve = new Turtle();
display.placeTurtle(steve);
steve.setSpeed(15);
steve.forward(140); // Moves Steve to the furthest right he needs to be
steve.left(PI/2);
steve.forward((float)1.5*(40*sqrt(3.0))); // Moves Steve to the top (up 1.5 times the height of a diamond)
steve.left(PI/6);
steve.penDown();
for (int m=1 ; m<=4 ; m++){
for (int j=1 ; j<=7 ; j++){ //Diamond Drawing
steve.forward(40);
steve.left(2*PI/3);
steve.forward(40);
steve.left(PI/3);
steve.forward(40);
steve.left(2*PI/3);
steve.forward(40);
steve.left(PI/3);
for (int i=1 ; i<=1 ; i++){
steve.penUp();
steve.left(PI/3);
steve.forward(40);
steve.right(PI/3);
steve.penDown();
for (int k=1 ; j>=7 ; k++){
for (int n=1, o=1 ; n<=o ; n=n+2){
steve.right(7*PI/6);
steve.forward((float)40*(sqrt(3.0)));
steve.left(PI/2);
steve.forward(280);
steve.left(2*PI/3);*
}
}
}
}
}
display.close();
};
基本上,最终结果应该是最后一个循环(n,o)仅在j的每7个循环中启动一次。它的作用是绘制7颗钻石然后n,o环向下移动以开始一个新的行,然后再绘制另外7颗钻石!但它只是无限期地一直在上下移动..
答案 0 :(得分:5)
您检查j
而不是k
。
这:for (int k=1 ; j>=7 ; k++)
应该是:for (int k=1 ; k<=7 ; k++)
此外,你不会增加o
,所以它总是为零,最内层的循环每次只运行一次。
答案 1 :(得分:2)
看看你的这个循环:
for (int k=1 ; j>=7 ; k++) {
...
}
当j
取值为7
时,此循环将永远不会结束,因为其内部j
不会更改。
答案 2 :(得分:0)
休息在哪里?
for (int k=1 ; j>=7 ; k++){