Я пытаюсь создать некоторый код, который будет спрашивать пользователя, какую функцию он хочет выполнить (например, найти какой квадрант на графике является точкой и т. Д.). Но я также хочу, чтобы код попросил пользователя повторно ввести число, если оно не находится между 1 и 6 включительно. Я попытался сделать это путем создания цикла do-while, но по какой-то причине он даже не зацикливается. Любые советы о том, как сделать его короче / чище, приветствуются.
Вот то, с чем у меня проблемы:
int whichMethod;
do{
whichMethod = scan.nextInt();
switch(whichMethod){
case 1:
System.out.println("Enter x and y values:");
x = scan.nextDouble();
y = scan.nextDouble();
Point p = new Point(x, y);
System.out.println("Quadrant:"+ p.quadrant());
break;
case 2:
System.out.println("Enter x and y values:");
x = scan.nextDouble();
y = scan.nextDouble();
Point case2p = new Point(x, y);
case2p.flip();
System.out.println("Flipped Coordinates" + case2p);
break;
case 3:
System.out.println("Enter x and y values:");
x = scan.nextDouble();
y = scan.nextDouble();
Point case3p = new Point(x, y);
System.out.println("Enter x and y values for the 2nd Point: ");
x = scan.nextDouble();
y = scan.nextDouble();
Point case3p2 = new Point(x, y);
System.out.println("Manhattan Distance:"+
case3p.manhattanDistance(case3p2));
break;
case 4:
System.out.println("Enter x and y values:");
x = scan.nextDouble();
y = scan.nextDouble();
Point case4p = new Point(x, y);
System.out.println("Enter x and y values for the 2nd Point: ");
x = scan.nextDouble();
y = scan.nextDouble();
Point case4p2 = new Point(x, y);
System.out.println("Are they Vertical?: " + case4p.isVertical(case4p2));
break;
case 5:
System.out.println("Enter x and y values:");
x = scan.nextDouble();
y = scan.nextDouble();
Point case5p = new Point(x, y);
System.out.println("Enter x and y values for the 2nd Point:");
x = scan.nextDouble();
y = scan.nextDouble();
Point case5p2 = new Point(x, y);
System.out.println("Slope is: " + case5p.slope(case5p2));
break;
case 6:
System.out.println("Enter x and y values:");
x = scan.nextDouble();
y = scan.nextDouble();
Point case6p = new Point(x, y);
System.out.println("Enter x and y values for the 2nd Point:");
x = scan.nextDouble();
y = scan.nextDouble();
Point case6p2 = new Point(x, y);
System.out.println("Enter x and y values for the 3rd Point:");
x = scan.nextDouble();
y = scan.nextDouble();
Point case6p3 = new Point(x, y);
System.out.println("Are they Collinear?: "+ case6p.isCollinear(case6p2, case6p3));
break;
default:
System.out.println("This isn't one of the methods available.");
System.out.println("Please enter a number between 1 and 6");
}
} while((whichMethod >= 1) && (whichMethod <= 6));