如何为

时间:2016-10-23 22:59:37

标签: java loops while-loop

我需要修改此方法,以便我可以使用while循环为x和y输入多个点。如果该值超出0-290的范围,则循环需要退出并打印"完成"。我刚刚学习了循环,我仍然不完全理解它们是如何工作的。到目前为止,这是我对该方法的代码。

public void plotPoints(Scanner keyboard)
{


System.out.print("Enter an x and y coordinate: ");
    //Read x from user
    int x = keyboard.nextInt();
    //Read y from user
    int y = keyboard.nextInt();
    //Plot the point
    new Circle(x,y);
 }

如果用户输入的x值或y值超出范围(即无法绘制), 循环应退出而不绘制点。画布尺寸为300x300,所以 最初任何小于0或大于290的点(你的点直径是10) 应该导致退出。 (此范围将在下一个活动中更改。)打印单词 退出循环后“完成”。

如果用户输入范围内的x值和y值,则应绘制点。该 循环将继续并允许用户输入另一个点。

注意,现在,点(0,0)将位于左上角,(290,290)将位于左上角 在右下角 这是我正在为我的第一个Cs课程实验室工作的。 我自己尝试使用while循环,但它最终打印了#34; done"一遍又一遍,程序停止了一分钟。

2 个答案:

答案 0 :(得分:1)

while循环执行一段代码,直到达到条件。例如:

int number = 0;

while (number < 5) {
    System.out.println(number);
    number++;
}

那将打印0,1,2,3和4.之后,条件为假,因为number == 5

在您的情况下,您需要使用do while,伪代码:

do {
    //Ask the user for x, y
} while (x >= 0 && x <= 290 && y >= 0 && y <= 290);

System.out.println("Done");

有关while循环的更多信息:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

答案 1 :(得分:0)

一段时间查看条件,当该条件为真时,它会执行内容。因此,假设您希望它至少执行一次,则必须预设变量,以使条件成立。然后提示用户,然后检查并绘制点或退出。

int x=0;
int y=0;

// sorry, i like to use lots of parens to make *sure* of what
// is being compared
while ((x>=0)&&(x<291)&&(y>=0)&&(y<291)){

// run your prompt and input here
// be sure to deal with invalid input (a string, decimals, etc)
// if values are within tolerance then plot the point
// else print done

} // end of while loop
相关问题