Laufzeitfehler bei Übungsaufgabe

Abstract90

Neues Mitglied
Guten Tag!

Ich bin neu im Forum und habe eine Frage zu folgender Übungsaufgabe:

Eine Folge von ganzen Zahlen soll eingelesen und in der Form wieder ausgegeben werden, daß
jeweils drei Zahlenpaare nebeneinander in einer Zeile stehen. Nach jeweils zwei Zeilen soll eine
Leerzeile gedruckt werden.

Nun habe ich folgendes programmiert:

Java:
package test1;

public class Main {

  public static void main(String[] args) {
  int i=0;
  int d=0;
  int e=0;
  int[] array={6,9,5,6,3,5,6,4,9,6,3,4,3,6,7,8};
   while(d<array.length-2){
  
     e=0;
     while(e<2){
       i=0;
       while(i<3){
         System.out.print(array[d]);
         System.out.print(array[d+1]);
         d=d+2;
         i=i+1;
         System.out.print("\t");
        
        
       }
       System.out.println("");
       e=e+1;
     }
     System.out.println("");
   }
  
  }
}

Warum bekomme ich eine Out of Bounds Exception?

Ich danke im vorraus!
 
K

kneitzel

Gast
In Deinem Array sind 16 Zahlen (So Ich mich nicht verzählt habe).
Innerhalb Deiner while Schleife gibst Du immer 6 Zahlen aus. (2 * 3 Zahlen)

Also wird geschaut:
d ist 0 und daher < 14
-> 6 Zahlen werden ausgegeben (0..5)
d ist 6 und daher < 14
-> 6 Zahlen werden ausgegeben (6..11)
d ist 12 und daher < 14
-> Es sollen 6 Zahlen ausgegeben werden, also Index 12..18
Mit 16 Zahlen hast Du aber nur die Indices 0..15

Beim Zugriff auf Element 16 kommt daher eine IndexOutOfBoundsException.
 

NullCharm

Aktives Mitglied
Es gibt da mehrere Herangehensweisen und so hätte ich es wahrscheinlich gemacht:

Java:
    public static void print(int[] a) {
        PrimitiveIterator.OfInt iterator = Arrays.stream(a).iterator();
        for (int i = 0; iterator.hasNext(); i++) {
            for (int j = 0; j < 2; j++) {
                for (int k = 0; k < 3; k++) {
                    if (iterator.hasNext()) {
                        System.out.print(iterator.nextInt() + " ");
                    }
                }
                System.out.println();
            }
            System.out.println();
        }
    }

    public static void print_b(int[] a) {
        for (int i = 0; ; ) {
            for (int j = 0; j < 2; j++) {
                for (int k = 0; k < 3; k++) {
                    if (i >= a.length) {
                        return;
                    }
                    System.out.print(a[i++] + " ");
                }
                System.out.println();
            }
            System.out.println();
        }
    }

    public static void main(String[] args) {
        int[] array = {6, 9, 5, 6, 3, 5, 6, 4, 9, 6, 3, 4, 3, 6, 7, 8};
        print(array);
        print_b(array);
    }

wobei mir print etwas besser gefällt als print_b ...
 

Flown

Administrator
Mitarbeiter
Hier ruft ja schon der Modulo Operator von der Weite:
Java:
for (int i = 1; i <= array.length; i++) {
  System.out.print(array[i-1]);
  if (i % 3 == 0) {
    System.out.println();
  } else {
    System.out.print(" ");
  }
  if (i % 6 == 0) {
    System.out.println();
  }
}
 

Abstract90

Neues Mitglied
Ich habe es am Ende so gelöst:

Java:
package test1;

public class Main {

  public static void main(String[] args) {
  int i=0;
  int d=0;
  int e=0;
  int[] array={6,9,5,6,3,5,6,4,9,6,3,5,3,9,3,4,3,6,7,8,3};
   while(d<array.length-2){
 
     e=0;
     while(e<2){
       i=0;;
       while(i<3){
         System.out.print(array[d]);
         if(d<array.length-1){
          System.out.print(array[d+1]);
          }
         System.out.print("\t");
         d=d+2;
         if(d>=array.length-2){
           break;
         }
         i=i+1;
        
        
       }
       if(d!=array.length-1){
        
        System.out.println("");
        }
       e=e+1;
     }
     System.out.println("");
   }
 
  }
}

Ist zwar nicht so elegant wie eure Beispiele, aber es funktioniert. Trotzdem danke für eure Antworten!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Überprüfen eines Queltextes auf Syntax-Fehler und Laufzeitfehler Java Basics - Anfänger-Themen 2
S Laufzeitfehler erkennen Java Basics - Anfänger-Themen 3
K Vererbung Zuweisungsfehler (Kompilier- und Laufzeitfehler) herausfinden Java Basics - Anfänger-Themen 3
Z Laufzeitfehler Java Basics - Anfänger-Themen 8
S Threads Laufzeitfehler bei invokeall für Callables Java Basics - Anfänger-Themen 2
I Laufzeitfehler ??? Java Basics - Anfänger-Themen 11
W Laufzeitfehler: NullPointerException Java Basics - Anfänger-Themen 12
S Laufzeitfehler beim JButtondrücken Java Basics - Anfänger-Themen 8
S Übersetzungsfehler oder Laufzeitfehler Java Basics - Anfänger-Themen 3
L Laufzeitfehler/keineAhnungwarum/needhelp Java Basics - Anfänger-Themen 3
E Plötzlich Abbruch mit Laufzeitfehler Java Basics - Anfänger-Themen 4
B Laufzeitfehler Java Basics - Anfänger-Themen 2
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 6
K Rundbeet Übungsaufgabe Java Basics - Anfänger-Themen 3
J Hilfe bei Übungsaufgabe Java Basics - Anfänger-Themen 17
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
H Übungsaufgabe Java Basics - Anfänger-Themen 21
K Übungsaufgabe... Verständnisproblme (java 8.191) Java Basics - Anfänger-Themen 4
H Polynome Übungsaufgabe uni Java Basics - Anfänger-Themen 49
H Übungsaufgabe algorithmen Java Basics - Anfänger-Themen 2
L Übungsaufgabe zu Schleifen Java Basics - Anfänger-Themen 7
H Frage zu Übungsaufgabe, Array Java Basics - Anfänger-Themen 7
T Übungsaufgabe Event Handling Java Basics - Anfänger-Themen 0
T Übungsaufgabe abstrakte Klasse Java Basics - Anfänger-Themen 21
B Hilfe bei Übungsaufgabe von Freitagsrunde Java Basics - Anfänger-Themen 5
B Übungsaufgabe Java Basics - Anfänger-Themen 5
M Übungsaufgabe Problem Java Basics - Anfänger-Themen 6
N Übungsaufgabe aus Java Buch bringt Fehler. Java Basics - Anfänger-Themen 10
B Übungsaufgabe zu Klassen, Methoden ... Java Basics - Anfänger-Themen 2
K Methoden Uhr als Übungsaufgabe Klassen/Objekte Java Basics - Anfänger-Themen 3
S Verständnisproblem einer Übungsaufgabe Java Basics - Anfänger-Themen 6
J Hilfe bei Übungsaufgabe Java Basics - Anfänger-Themen 5
D Brauche Hilfe bei Modulo (Übungsaufgabe) Java Basics - Anfänger-Themen 14
U Erste Schritte Fehler in Übungsaufgabe Java Basics - Anfänger-Themen 22
W Übungsaufgabe:Dynamische Datenstrukturen Java Basics - Anfänger-Themen 10
pg1337 Übungsaufgabe für Anfänger Java Basics - Anfänger-Themen 26
N Übungsaufgabe mit static Wert Java Basics - Anfänger-Themen 27
P Datentypen Frage zu einer Übungsaufgabe Java Basics - Anfänger-Themen 15
N Übungsaufgabe mit Interface Java Basics - Anfänger-Themen 2
F Schleifen Übungsaufgabe Java Basics - Anfänger-Themen 4
A Übungsaufgabe lösen - Problem mit true und false Java Basics - Anfänger-Themen 6
D Schiedermeier 1. Semester Übungsaufgabe Problem Java Basics - Anfänger-Themen 8
C Übungsaufgabe Java Basics - Anfänger-Themen 10
R Problem bei Übungsaufgabe Java Basics - Anfänger-Themen 7
M Hilfe bei Übungsaufgabe :'( nooby Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben