Von ruby / rails kommend habe ich viele Schwierigkeiten, die Java-Logik zu übernehmen.java - dem int [] Array in der do-while-Schleife einen Wert zuweisen
Frage - Wie kann man Arrays von Integern in do-while-Schleifen Werte zuweisen (lesen von stdin), um diese Arrays später in späteren Methoden zu verwenden?
Hier ist mein Code-Schnipsel:
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(); - Scanner-Objekt, das von System.in liest
==================
Console Fehler:
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
Wenn Ich mache:
ohne do-while, alles funktioniert perfekt;
declare Arrays oben do-while und entfernen Erklärungen in do-while nur verlassen:
edge1 = {Ch3Ex.stdin.nextInt(), Ch3Ex.stdin.nextInt()};
dann bekomme ich Tasks3.java:199: error: illegal start of expression edge1 = {Ch3Ex.stdin.nextInt(),Ch3Ex.stdin.nextInt()};
Erklärung und Speicher außerhalb do-while zuweisen:
int [] side1 = new int [2];
und innen do-while assign Werte getrennt:
side[0] = Ch3Ex.stdin.nextInt();
alles auch perfekt funktioniert.
========
Wo ist mein Problem + die Logik-Arrays verstehen Schleifen
Verwenden Sie 'edge1 = neu int [] {Ch3Ex.stdin.nextInt(), Ch3Ex.stdin.nextInt()};' anstelle von 'edge1 = {Ch3Ex.stdin.nextInt(), Ch3Ex.stdin.nextInt ()}; '. –