Исходя из ruby / rails У меня много трудностей с использованием Java-логики.java - присвоить значение массиву int [] в цикле do-while
Вопрос - как назначить значения (считанные из stdin) массивам целых чисел в цикле do-while, чтобы использовать эти массивы позже в более поздних методах?
Вот мой фрагмент кода:
void triAnglePerimeter() {
//int[][] arrs;
//int[] edge1, edge2, edge3 = new int[];
do {
System.out.print("X, Y for edge 1: ");
int[] edge1 = {Ch3Ex.stdin.nextInt(),Ch3Ex.stdin.nextInt()};
System.out.print("X, Y for edge 2: ");
int[] edge2 = {Ch3Ex.stdin.nextInt(),Ch3Ex.stdin.nextInt()};
System.out.print("X, Y for edge 3: ");
int[] edge3 = {Ch3Ex.stdin.nextInt(),Ch3Ex.stdin.nextInt()};
int[][] arrs = {edge1,edge2,edge3};
if (!(TriangleHelpers.inputValidityChecker(arrs)))
System.out.println("Wrong input. Retype.");
} while(!(TriangleHelpers.inputValidityChecker(arrs)));
Triangle triAngle = new Triangle();
triAngle.computeSides(arrs);
System.out.printf("Triangle perimeter == %.2f\n", triAngle.perimeter());
}
==================
Ch3Ex.stdin.nextInt(); - объект сканера, который считывает System.in
==================
консоли ошибок:
Tasks3.java:209: error: cannot find symbol
} while(!(TriangleHelpers.inputValidityChecker(arrs)));
^
symbol: variable arrs
location: class Tasks3
Tasks3.java:212: error: cannot find symbol
triAngle.computeSides(arrs);
^
symbol: variable arrs
location: class Tasks3
2 errors
Если Я:
без досуга, все работает отлично;
объявлять массивы выше делать-то время и удалить объявления в то время как делать-только оставив:
EDGE1 = {Ch3Ex.stdin.nextInt(), Ch3Ex.stdin.nextInt()};
тогда я получаю Tasks3.java:199: error: illegal start of expression edge1 = {Ch3Ex.stdin.nextInt(),Ch3Ex.stdin.nextInt()};
декларация и память назначения вне делать-то время:
ИНТ [] side1 = новый INT [2];
и внутри делать-то время присваивают значения отдельно:
side[0] = Ch3Ex.stdin.nextInt();
все работает отлично.
========
Где моя проблема понимания логики массивов + петли
Использовать 'edge1 = new int [] {Ch3Ex.stdin.nextInt(), Ch3Ex.stdin.nextInt()};' вместо 'edge1 = {Ch3Ex.stdin.nextInt(), Ch3Ex.stdin.nextInt ()}; '. –