Verständnisfrage, warum m=-1?

Status
Nicht offen für weitere Antworten.

tk80

Mitglied
Aufgabenstellung:

Es gibt eine Welt mit vershiedenen Städten.
Jede Stadt hat 4 Tore. Von jedem Tor führt ein Weg (oder kein Weg) zu einer anderen Stadt.
Wege dürfen sich nicht kreuzen.

Mann muss alle Städte ausgeben, die direkt (dh ohne Umweg über andere Städte) miteinander verbunden sind.

Hauptmethode:
Code:
void direkterWeg(String St1, String St2) {
Weg w = direkt(St1, St2);
if (w!=null) {
zeigeAus("Direkter Weg: " + St1 + " "
+ TorName (TorIndex (wo(St1), w)) + ", "
+ w.Laenge + ", " + St2 + " "
+ TorName (TorIndex (wo(St2), w)) );
} else {
zeigeAus("Kein direkter Weg zwischen "
+ St1 + " und " + St2);
}
}


Hilfsmethode:

Code:
Weg direkt (String St1, String St2) {
Stadt s1 = wo(St1), s2 = wo(St2);
int tor=-1, laenge=0;
for(int i=0; i<4; i++) {
if (
(Nachbar(s1, i) == s2) && ((tor == -1)
|| (s1.Tor[i].Laenge < laenge)))
{
tor=i;
laenge = s1.Tor[i].Laenge;
}
}
if (tor>=0) {
return s1.Tor[tor];
} else {
return null;
}
}

warum wird tor mit -1 initialisiert? Was hat das für einen Zweck? Eigentlich kann doch tor gar nicht -1 werden??

Wann hat es Sinn int-Varibalen mit -1 zu initialisieren und was bedeutet das?

DANKE!
 
S

SlaterB

Gast
-1 heißt hier 'undefiniert',
es ist nicht sicher ob tor in der folgenden Schleife + if einen Wert bekommt,
am Ende will man aber mit tor arbeiten, also prüft man am Ende ob tor noch -1 ist,
wenn ja, dann wurde tor kein Wert zugewiesen, ansonsten schon
 

hupfdule

Top Contributor
tk80 hat gesagt.:
warum wird tor mit -1 initialisiert? Was hat das für einen Zweck? Eigentlich kann doch tor gar nicht -1 werden??
Eben genau deswegen. Sollte tor bis am Ende den Wert -1 behalten, ist es klar ersichtlich, dass da etwas nicht stimmt. -1 wird gerne für int-Werte verwendet, da diese ja nicht 'nullable' sind. Objekte würde man normalerweise mit null initialisieren. Da das bei int nicht möglich ist, weicht man halt gezwungenermaßen auf einen derartigen 'ungültigen' Wert aus.
 

TRunKX

Bekanntes Mitglied
Kannst auch int nullable kriegen. wenn du wirklich OOP betreibst dann machste doch eh

nicht int i = 0;

sondern:

private Integer i = null;
 
G

Guest

Gast
TRunKX hat gesagt.:
Kannst auch int nullable kriegen. wenn du wirklich OOP betreibst dann machste doch eh

nicht int i = 0;

sondern:

private Integer i = null;

Was hat die Verwendung von Integer mit wirklichem OOP zu tun?

Ich verwende doch nicht ein Integer-Objekt, wenn ich ganz einfach nur ne kleine Ganzzahl will, egal ob OOP oder nicht.
 

tk80

Mitglied
noch eine Frage:
(alle Städte sind in einer linearen Liste angeordnet)

Code:
 void Weg()
  {
  	Stadt s1 = Staedte; //Staedte = Kopf
  	Stadt s2;
  	
  	int h = 0;
  	int n = wegzaehler();
  	int [] a = new int[n]
  	
  	while (s1 != null)
  	{
  		s2 = s1.Nf;
  		while (s2!=null)
  		{...
.
.
.

verstehe ich das richtig, erstmal kuckt man, ob s1 leer ist, wenn nicht wird gekuckt, ob s1 einen Nachfolger hat und wenn ja, wird so zusagen s2 zu s1 (also Kopf) und die Restliste wird durchlaufen???
 
S

SlaterB

Gast
> wenn nicht wird gekuckt, ob s1 einen Nachfolger hat und wenn ja, wird so zusagen s2 zu s1 (also Kopf)

s2 wird nie zu s1, sondern zu s1.Nf

und dies passiert doch BEVOR 'gekuckt [wird], ob s1 einen Nachfolger hat'
denn erst wenn s2 gesetzt ist wird geprüft (while (s2!=null))
 

tk80

Mitglied
Hmm...verstehe ich nicht ganz...

also ich habe s1 (=Kopf)

dann habe ich s2 (noch weiss ich nicht, ob s2 null ist oder nicht)
s2 wird zum Nachfolger von s1

wenn s2 nicht null ist, wird weiter gemacht...

ist das jetzt richtig?
 
S

SlaterB

Gast
> dann habe ich s2 (noch weiss ich nicht, ob s2 null ist oder nicht)

genauer: an dieser Stelle (bevor s2 zum Nachfolger von s1 wird ) ist s2 gar nix und das weiß man auch und ist auch so gedacht

Rest richtig
 
S

SlaterB

Gast
...


s2 = s1.Nf;
würde nicht funktionieren wenn s1 null ist, also kann man das erst nach dem Test machen,

nun könnte man
Stadt s2= s1.Nf;
in einer Zeile schreiben, aber wenn man die Variable außen definieren möchte dann in zwei Schritten wie oben,
warum die Variable ganz am Anfang definiert wird kann ich auch nicht sagen,
Geschmackssache
 

tk80

Mitglied
Die Aufgabe war, alle Weglängen auszugeben und zwar aufsteigend soritert



Code:
void weglaengen()
    {
        int n = wegzaehler();
        int a[] = new int [n];
        int h = 0;
        
        Stadt s1 = Staedte;
        Stadt s2;
        
        while (s1!=null)
        {
            s2 = s1.Nf;
            
            while (s2!=null)
            {
                for (int i=0;i<4;i++)
                {
                    if (Nachbar(s1,i)==s2)           
                        a[h] = s1.Tor[i].Laenge;      
                        h++;                                  
                    }        
                }
                s2 = s2.Nf;    
            }
            s1 = s1.Nf;    
        }

Was ich nicht verstehe: warum wird s2=s2.Nf und s1=s1.Nf
Was bedeutet das?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J int-Verständnisfrage Java Basics - Anfänger-Themen 12
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
A Verständnisfrage Java Basics - Anfänger-Themen 12
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
P Verständnisfrage: PageFactory.initElements Java Basics - Anfänger-Themen 2
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
Vivien Kurze Verständnisfrage zu Java Point aus java.awt.* Java Basics - Anfänger-Themen 5
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
P Verständnisfrage zum Mapping Java Basics - Anfänger-Themen 3
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
L Verständnisfrage - Speicherabbild Java Basics - Anfänger-Themen 4
melly_ Verständnisfrage zu args Java Basics - Anfänger-Themen 3
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
K Verständnisfrage eines Abschnitts Java Basics - Anfänger-Themen 6
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
S Modell View Controller Verständnisfrage Java Basics - Anfänger-Themen 24
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
Z Verständnisfrage Anfängerprogramm Java Basics - Anfänger-Themen 0
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
G Methoden Verständnisfrage zur Methoden Java Basics - Anfänger-Themen 7
LionAge Kapselung, Verständnisfrage zur Objekterzeugung Java Basics - Anfänger-Themen 4
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
R OOP / Verständnisfrage zum Konstuktor (siehe code) Java Basics - Anfänger-Themen 7
gamebreiti Verständnisfrage zu contains() Java Basics - Anfänger-Themen 10
A Verständnisfrage - Koordinatenumrechnung Java Basics - Anfänger-Themen 9
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage Array Java Basics - Anfänger-Themen 2
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
P Verständnisfrage Java Basics - Anfänger-Themen 3
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
D Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung Java Basics - Anfänger-Themen 1
S Verständnisfrage zu Anweisungen und deren Wirkung Java Basics - Anfänger-Themen 7
H Verständnisfrage für oder Anweisung Java Basics - Anfänger-Themen 8
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage zu Java-Ausgabe Java Basics - Anfänger-Themen 3
S Verständnisfrage Java Basics - Anfänger-Themen 2
N Verständnisfrage Code Java Basics - Anfänger-Themen 8
B Verständnisfrage Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Verständnisfrage Codezeile Java Basics - Anfänger-Themen 7
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
M Kurze Verständnisfrage zu einer Java Aufgabe Java Basics - Anfänger-Themen 12
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
M Verständnisfrage: Objekt erzeugen u. zuweisen Java Basics - Anfänger-Themen 16
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
S Verständnisfrage: Exception Gebrauch Java Basics - Anfänger-Themen 2
R Verständnisfrage NPE Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
P Java Objekte - Verständnisfrage Java Basics - Anfänger-Themen 9
N Verständnisfrage zu folgendem Programm Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
K Verständnisfrage zu int.length und String.length() Java Basics - Anfänger-Themen 4
G 2D Array gleichsetzen verständnisfrage Java Basics - Anfänger-Themen 2
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
N verständnisfrage java.util.Calendar Java Basics - Anfänger-Themen 4
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
E Verständnisfrage zu Shutdownhook Java Basics - Anfänger-Themen 5
D Verständnisfrage: Java und MySql Java Basics - Anfänger-Themen 3
F Rekursion Verständnisfrage Java Basics - Anfänger-Themen 6
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
Z Comparator Verständnisfrage Java Basics - Anfänger-Themen 5
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
H Verständnisfrage Persistenz Java Basics - Anfänger-Themen 10
neurox Verständnisfrage zu Threads Java Basics - Anfänger-Themen 4
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben