我需要修改此方法,以便我可以使用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"一遍又一遍,程序停止了一分钟。
答案 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