Ich versuche, mein Array einmal mit einem Methodenaufruf zu drucken, während der Benutzer y oder Y eingibt. Ich weiß nicht, wie ich das Array dazu bringen kann, nur einmal zu drucken.
Ich habe recherchiert und versucht, meinen eigenen Code zu optimieren, aber ich bin verloren.
public class Lab10p1 {
public static final int ROW = 5;
public static final int COL = 6;
public static final int MIN = 0;
public static final int MAX = 100;
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
System.out.println("Do you want to start Y/N?");
char c =scan.next().charAt(0);
while(c=='y'||c=='Y')
{
int[][] a = new int[ROW][COL];
randArray(a, ROW, COL, MIN, MAX);
}
}
public static void randArray(int[][] matrix, int row, int col, int low, int up)
{
Random rand = new Random();
for (int r = 0; r < row; r++)
{
for (int c = 0; c < col; c++)
{
int are=matrix[r][c] = rand.nextInt(up - low + 1) + low;
System.out.print(" "+are);
}
System.out.println();
}
}
die erwartete Ausgabe ist
Möchten Sie fortfahren(J/N): y
Die Array-Elemente sind:
12 31 12 21 45 23
32 12 67 54 35 67
34 54 33 34 53 34
23 34 43 23 45 78
23 54 89 76 54 34
Die tatsächlichen Ergebnisse sind eine Endlosschleife des Druckens von 6x5-Arrays
Das passiert, weil Sie den Wert von 'c' nur einmal eingeben und ihn immer wieder iterieren. Jetzt geht es in eine Endlosschleife, weil sich der Wert von 'c' überhaupt nicht ändert.
char c =scan.next().charAt(0);
int[][] a;
while(c=='y'||c=='Y')
{
a = new int[ROW][COL];
randArray(a, ROW, COL, MIN, MAX);
c =scan.next().charAt(0);
}
Außerdem müssen Sie das 2D-Array nicht jedes Mal neu deklarieren.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen