【发布时间】:2020-05-30 11:08:23
【问题描述】:
我正在尝试循环询问坐标并从扫描仪获取输入。我想要求输入,直到坐标有效。但是,我对 java 真的很陌生,循环使我对这项任务感到困惑。 首先我应该打印一个控制台输出,要求玩家输入一对棋盘坐标。
如果输入是有效坐标,我会将坐标作为字符串数组返回。
如果输入不是有效的坐标,我应该打印一条错误消息,然后再次询问,直到我得到有效的坐标。
public static String[] positionQuery(int dim, Scanner test_in) {
Scanner stdin = new Scanner(System.in);
System.out.println("Provide origin and destination coordinates.");
System.out.println("Enter two positions between A1-H8:");
String s1 = stdin.nextLine();
String[] coordinates = s1.split(" ");
String origin = coordinates[0];
String dest = coordinates[1];
while (!validCoordinate(origin, dim) && !validCoordinate(dest,dim)) {
System.out.println("ERROR: Please enter valid coordinate pair separated by space.");
String s2 = stdin.nextLine();
String[] coordinates2 = s2.split(" ");
String origin2 = coordinates[0];
String dest2 = coordinates[1];
}
return new String[0];
}
我创建了一个辅助函数validCoordinate(String, int) 来检查有效性。
如何修复我的代码?
【问题讨论】:
-
仅供参考,方法
positionQuery()的参数test_in未使用。