我试图在一段时间内获得用户输入:
package com.projet.geometrie;
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
class TestGeo{
public static void main(String[] args) {
Scanner input_reader = new Scanner(System.in);
boolean retour = false;
boolean first = true;
List<Vertex> listePoints = new ArrayList<>();
while (!retour) {
System.out.println("Entrez une coordonnée au format : x,y");
String coord = input_reader.next();
String[] coordSplit = coord.split(",");
int x = Integer.parseInt(coordSplit[0]);
int y = Integer.parseInt(coordSplit[1]);
if (!first) {
if (x != listePoints.get(0).getX() && y != listePoints.get(0).getY()) {
Vertex nouveauPoint = new Vertex(x, y);
listePoints.add(nouveauPoint);
if (listePoints.size() > 1) {
}
} else {
retour = true;
}
} else {
first = false;
Vertex nouveauPoint = new Vertex(x, y);
listePoints.add(nouveauPoint);
}
}
input_reader.close();
Section test = new Section(listePoints);
System.out.println("Nombre de sommets : " + listePoints.size());
System.out.println("Aire du polygone : " + test.getAire());
System.out.println("Centroide X : " + test.getCoordCentroide().get(0) + " Y : " + test.getCoordCentroide().get(1));
}
}
但是在某些时候,输入输入后,我的代码就卡住了。我写了输入,按回车,由于不再读取输入,它只是跳过了一行。它通常发生在3次迭代之后,但有时是2次,有时是4次。在调试模式下,它只会卡住尝试读取的内容。
有人知道我做错了什么吗?
我正在使用jdk 10.0.2,请告知我是否有其他有用的信息,我是java的新手。
* EDIT:张贴了我正在遇到错误的完整代码。类Vertex只是2个int的组合,并且已经过测试,我知道它可以工作。该类应采用用户输入的坐标,并将点添加到点列表中。如果最后输入的点与第一个相同,它将停止并显示有关所创建多边形的一些信息。
答案 0 :(得分:0)
最后通过使用.nextInt()并要求用户分别输入x和y(作为2个不同的输入)来使其工作。我认为这与字符串参与该过程有关,尽管我不确定为什么会有问题。如果有人有解释,即使它现在正在工作,我也很高兴知道更多。