TweakPC

Zurück   Computer Hardware Forum - TweakPC > Games und Software > Programmiersprachen

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10.03.2009, 10:55   #1 (permalink)
PC Schrauber
 

Registriert seit: 12.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard Prüfen, ob es Arrayelement gibt.

In einer Schleife wird mit einem Array immer das gleiche getan.
Nimm array(i+1) und mach das
nimm array(i-1) und mach das

Nun kommt es vor, dass die Schleife auf das array(-1) zugreifen will und mir eine Fehlermeldung ausgibt. (Oder das array hat sechs elemente und die Schleife will auf array(6) zugreifen.

Eine Funktion, die vorher schaut, ob es dieses Element überhaupt gibt bräuchte ich. (Und wie derjenige, der mir verrät, wie diese Funktion heißt, auf diese gekommen ist.)

Gruß Christian
Greeven ist offline   Mit Zitat antworten
Alt 10.03.2009, 10:59   #2 (permalink)
Hardware Freak
 

Registriert seit: 28.03.2003
Beiträge: 8.252

redfalcon kann auf vieles stolz sein
redfalcon kann auf vieles stolz sein

Standard AW: Prüfen, ob es Arrayelement gibt.

Verrätst du uns noch die Programmiersprache? In Java könnte man da z.B. einfach eine Exception drum rum machen. Oder wenn du weist wie groß das Array ist, jeweils den Wert von i abfragen und bei Bedarf rausspringen.
redfalcon ist offline   Mit Zitat antworten
Alt 10.03.2009, 11:02   #3 (permalink)
PC Schrauber
 

Registriert seit: 12.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard AW: Prüfen, ob es Arrayelement gibt.

Oh verzeih. Java ist es. Eine Exception drum machen?
Greeven ist offline   Mit Zitat antworten
Alt 10.03.2009, 11:42   #4 (permalink)
Hardware Freak
 

Registriert seit: 28.03.2003
Beiträge: 8.252

redfalcon kann auf vieles stolz sein
redfalcon kann auf vieles stolz sein

Standard AW: Prüfen, ob es Arrayelement gibt.

Wenn du in Java versuchst auf ein Arrayelement zuzugreifen was nicht existiert (z.B. bla[12], obwohl das Array nur 6 Elemente hat), wird eine Exception ("Ausnahmefehler") geworfen und das Programm stürzt ab. Nun kann man in Java solche Exceptions abfangen und entsprechend behandeln. Zum Beispiel:

PHP-Code:
void MachWas(){

int posArray[]= new int [6];
int irgendEinWert;
int i=1;

try{
  while(
i<5000){
  
posArray[i+1]=irgendEinWert;
  
i++;
  }
}

catch(
ArrayIndexOutOfBoundsException e){
System.out.println("Hier ist was schiefgelaufen, es wurde auf ein nicht vorhandenes Arrayelement zugegriffen!");
e.printStackTrace(); //Gibt Fehlerinformationen zu Testwecken
//Hier könnte man das Programm dann beenden, oder in eine andere Methode springen.
}

catch(
Exception f){
System.out.println("Hier ist irgendwas anderes schiefgelaufen!");
f.printStackTrace(); //Gibt Fehlerinformationen zu Testwecken
}



Alternativ bekommst du mit arrayname.length() auch die Größe des Arrays raus, du könntest also prüfen, ob i bei jedem Inkrement überhaupt einen gültigen Wert hat und ggf die Schleife beenden.

Geändert von redfalcon (10.03.2009 um 17:41 Uhr)
redfalcon ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
Greeven (10.03.2009)
Alt 10.03.2009, 15:29   #5 (permalink)
Blödmarktkundenberater
 
Benutzerbild von Exit
 

Registriert seit: 10.04.2002
Beiträge: 10.661

Exit hat eine strahlende Zukunft
Exit hat eine strahlende ZukunftExit hat eine strahlende ZukunftExit hat eine strahlende ZukunftExit hat eine strahlende ZukunftExit hat eine strahlende Zukunft

Standard AW: Prüfen, ob es Arrayelement gibt.

Uh - bitte nicht wirklich über das Exception Handling handeln, sondern doch schon direkt kontrollieren ob das Element existiert.

try - catch Blöcke kosten sehr viel Ressourcen und werden dementsprechend langsam abgearbeitet. Diese sind wirklich nur für Notfälle gedacht und sollten keinesfalls direkt in der Programmlogik verwendet werden.

Den Test solltest Du besser über Array.length machen, bei dem Du die Anzahl der Einträge im Array bekommst.
Power is nothing without Control!
Hauptsystem
Exit ist offline   Mit Zitat antworten
Alt 10.03.2009, 16:34   #6 (permalink)
EoN
Kaffeejunkie
 
Benutzerbild von EoN
 

Registriert seit: 01.05.2002
Beiträge: 5.035

EoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer Anblick

Standard AW: Prüfen, ob es Arrayelement gibt.

Wenn Du ne Schleife haben willst, die das Array von hinten durchgeht könnte das dann so aussehen:

Code:
for(int i = 0; i < ARRAY.length; i++ ) {
ARRAY[array.length - i - 1] = IRGENDWAS;
}
EoN ist offline   Mit Zitat antworten
Alt 10.03.2009, 18:27   #7 (permalink)
PC Schrauber
 

Registriert seit: 12.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard AW: Prüfen, ob es Arrayelement gibt.

So könnte ich es auch machen. Mit try und catch läuft es momentan schon gut. Für die length-Variante müsste ich wissen, wie ich die Länge von dreidimensionalen Arrays bestimme.
Aber danke für den Hinweis, dass try-catch Ressourcen und Zeit kostet.
Greeven ist offline   Mit Zitat antworten
Alt 10.03.2009, 23:09   #8 (permalink)
Blödmarktkundenberater
 
Benutzerbild von Exit
 

Registriert seit: 10.04.2002
Beiträge: 10.661

Exit hat eine strahlende Zukunft
Exit hat eine strahlende ZukunftExit hat eine strahlende ZukunftExit hat eine strahlende ZukunftExit hat eine strahlende ZukunftExit hat eine strahlende Zukunft

Standard AW: Prüfen, ob es Arrayelement gibt.

Schau mal hier rein:

Anfänger-Tutorial: Arrays - Java - Tutorials @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe

Und suche nach "3 Dimm" - dann kommste schon an die richtige Stelle.
Exit ist offline   Mit Zitat antworten
Antwort

Stichworte
arrayelement, prüfen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
AMD gibt CPU-Herstellung auf? Joerg News 17 22.06.2007 12:43
Zusammenstellung bitte Prüfen für Zock-PC the_white_smoke Kaufberatung 7 29.10.2006 10:18
Prüfen ob Zahl ungerade squier Programmiersprachen 3 28.10.2006 09:26
Programm zum Prüfen? Haloman RAM Arbeitsspeicher 12 08.11.2004 15:18
gibt es 2 slk900??? Hazard Cooling - Kühler, Lüfter etc. 6 25.03.2003 17:13


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.






Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.
Impressum, Datenschutz Copyright © 1999-2015 TweakPC, Alle Rechte vorbehalten, all rights reserved