Variablen Variable wird nicht benutzt

Splinter479

Mitglied
Hi,
ich gebe, zu ich bin ganz allgemein kein sooo guter Java-Programmierer, deswegen hoffe ich, dass das 'Problem' hier leicht beantwortet werden kann. Als ich kürzlich von C++ mal in JAVA reinschnuppern wollte, machten mir die einfachsten Dinge einen Strich durch die Rechnung.

Ich wollte in einem einfachen Beispiel mal ganz simpel eine Funktion zur Vektoraddition schreiben, die
- erst die Vektoren auf gleiche Größe prüft und
- dann die Einträge schrittweise addiert.

Ich habe bislang zwei Ansätze, die zwar richtig addieren, aber nicht den ERROR ausgeben, wenn die Dimensionen nicht stimmen. Ich glaube, da stimmt irgendwas nicht mit der Bool-Variable "same", denn die hat scheinbar keine Auswirkung.

1. Versuch mit Unterteilung in Funktionen:

Java:
public class HelloWorld 
{
	public static void main(String[] args) 
	{
	int [] a = {1, 2, 3, 4, 5};
	int [] b = {5, 6, 7, 8, 9};
	boolean same = false;
	
	compareIfSameLength(same, a, b);
	add(same , a, b);
	}
	
	public static boolean compareIfSameLength(boolean same, int [] a, int [] b) {
		
		if (a.length == b.length)
			same = true;
		else
			same = false;
	return same;
	}
	
	public static void add (boolean same, int [] a, int [] b) {	
		
		if (same = true){
			
			int [] c = new int [a.length];
			
			for (int i=0; i < a.length; i++ ){
				c[i] = a[i] + b[i];
			}
		
			
			for (int j=0; j < c.length; j++){
				System.out.println(c[j]);
			}
		
		}
		
		else { System.out.println("Error: Vectors do not have the same size."); }
	
	}
}

2. Versuch ohne Funktionen (alles in der main):

Java:
public class addVector
{

	public static void main(String[] args)
	{
	
		int [] a = {1, 2, 3, 4, 5};
		int [] b = {5, 6, 7, 3, 8, 9};
		int [] c = new int [a.length];
		boolean same = false;
	
			
		if (a.length == b.length)
			same = true;
			
		else
			same = false;
		
		
			
		if (same = true)
			{
				for (int i=0; i < a.length; i++ )
				{
					c[i] = a[i] + b[i];
				}
			
				for (int j=0; j < c.length; j++)
				{
					System.out.println(c[j]);
				}
			}
			
			else { System.out.println("Error: Vectors do not have the same size."); }
		
	}

}

Ich behaupte mal, eine geübter Java-Blick löst das hoffentlich recht schnell. :oops:
In jedem Fall vielen Dank!
greez Splinter
 

Jodo

Aktives Mitglied
Hier ist der Fehler
Code:
if (same = true)
Vergleiche mit
Code:
==
;)
 
F

frizle

Gast
statt
Java:
compareIfSameLength(same, a, b);
musst du
Java:
same = compareIfSameLength(same, a, b);

schreiben. Kannst dir die Übergabe von same dann auch sparen. boolean ist immutable, kann also nicht verändert werden von anderen Methoden.
 
S

SlaterB

Gast
was ist denn die Frage/ das Problem?

if (same = true)
ist kein Vergleich sondern eine Zuweisung

if (same == true)
oder einfach nur
if (same)
hätte andere Auswirkungen
 

Kevin94

Top Contributor
Auserdem sind in Java primitive Datentypen keine Referenzen,d.h. sie werden Call-By-Value übergeben. Somit ist der Aufruf von
Code:
compareIsSameLength
wirkungslos und der Parameter same somit sinnlos. Du müsstest schreiben:
Code:
same=compareIsSameLength(a,b);

Der Vergleich auf true ist übrigens überflüssig, da ein boolean in Java nur true oder false sein kann, und nicht so wie in C++ eine Zahl ist.
 

Splinter479

Mitglied
Cool.
Soweit erstmal vielen Dank. Ich hab das Programm mit den Tips umgeschrieben und es funktioniert jetzt auch einwandfrei.
Allerdings musste ich noch in die Methode compareIfSameLength lokal nochmal same deklarieren. Das macht für mich keinen Sinn. Kann mir das jemand (einfach^^) erklären?

Nochmals vielen Dank.

Java:
public class HelloWorld 
{
	public static void main(String[] args) 
	{
	int [] a = {1, 2, 3, 4, 5};
	int [] b = {5, 6, 7, 3, 4, 9};
	
	boolean same = compareIfSameLength(a, b);
	add(same , a, b);
	}
	
	public static boolean compareIfSameLength(int [] a, int [] b) {
		
		boolean same;
		
		if (a.length == b.length)
			same = true;
		else
			same = false;
		
		return same;
             }

................

greez Splinter ???:L
 
G

ghjdfhfh

Gast
Java:
public static boolean compareIfSameLength(int [] a, int [] b) {
        return a.length == b.length;
}
 

Jodo

Aktives Mitglied
Wenn du es etwas umschreibst, brauchst du es nicht neu deklarieren. Ich habs in deinem Code grad auskommentiert und an der neuen Stelle mit nem "XXX" markiert.
Grund is ganz einfach. Du hast ja
Code:
same
nur in deiner main-Methode deklariert und somit kann die Variable ja ausserhalb der main nicht bekannt sein.
Durch die kleine Änderung ist sie in der ganzen Klasse bekannt und kann überall genutzt werden ;)

Java:
public class HelloWorld 
{
    private static boolean same;    //XXX

    public static void main(String[] args) 
    {
    int [] a = {1, 2, 3, 4, 5};
    int [] b = {5, 6, 7, 3, 4, 9};
    
    boolean same = compareIfSameLength(a, b);
    add(same , a, b);
    }
    
    public static boolean compareIfSameLength(int [] a, int [] b) {
        
        //boolean same;
        
        if (a.length == b.length)
            same = true;
        else
            same = false;
        
        return same;
             }
 
................

[EDIT]Das beantwortet natürlich nur deine Frage. Die schönste Lösung dafür siehst du bei meinem Vorposter, dann reicht die lokale Variable in der main komplett aus[/EDIT]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
L Variable für JLabel wird nicht erzeugt Java Basics - Anfänger-Themen 6
Z Variablen String umdrehen, Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
O Variablen Variable wird nicht gefunden Java Basics - Anfänger-Themen 2
E Fehlermeldung: variable wird nicht initalisiert obwohl sie deklariert ist Java Basics - Anfänger-Themen 9
A Compiler-Fehler Variable wird nicht durchgereicht Java Basics - Anfänger-Themen 5
K Einfache Rekursion - Wert wird nicht in Variable gespeichert Java Basics - Anfänger-Themen 7
L Variable wird nicht verändert? Java Basics - Anfänger-Themen 7
Z Variable wird nicht ausgelesen? Java Basics - Anfänger-Themen 7
P float Eingabe wird nicht akzeptiert, obwohl Variable als float deklariert Java Basics - Anfänger-Themen 2
S Variable wird nicht gefunden und Arrays Java Basics - Anfänger-Themen 17
I Array und variable gleicher wert, wird jedoch nicht erkannt Java Basics - Anfänger-Themen 4
H eine als public deklariete Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
T Globale Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
R Variable wird nicht übergeben Java Basics - Anfänger-Themen 2
T Variable wird nicht mitberechnet. Java Basics - Anfänger-Themen 2
R Warnung, wenn eine Variable eingegeben wird Java Basics - Anfänger-Themen 6
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
S Variable wird falsch gesetzt Java Basics - Anfänger-Themen 5
B Variable wird einfach so wieder auf "null" gesetzt Java Basics - Anfänger-Themen 12
A Main warten lassen bis Variable durch Button übergeben wird Java Basics - Anfänger-Themen 2
O Variable Zimmergrößen per scanner einlesen Java Basics - Anfänger-Themen 5
richis-fragen String("AT") als StringObject-Variable deklarieren Java Basics - Anfänger-Themen 14
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10
T Datum als Variable wert Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
U Wie mache ich die Variable xyz eindeutig/unique? Java Basics - Anfänger-Themen 20
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Variable Felderanzahl Java Java Basics - Anfänger-Themen 10
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
M Variable in einer Schleife initialisieren Java Basics - Anfänger-Themen 46
W Schleife und einmal variable++ zu viel Java Basics - Anfänger-Themen 20
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
M Methoden Wert einer Variable geht verloren? Java Basics - Anfänger-Themen 6
G variable kopieren bzw. woanders benutzen Java Basics - Anfänger-Themen 6
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
J Double Variable und Addition Java Basics - Anfänger-Themen 2
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
KogoroMori21 Variable im Parameter und Ohne Java Basics - Anfänger-Themen 5
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
H Datentypen Wertebereich von <Klassenname> <Variable> Java Basics - Anfänger-Themen 12
M Private Variable Java Basics - Anfänger-Themen 2
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
s.marcii Modulo in der Variable einsetzen - ist das möglich? Java Basics - Anfänger-Themen 2
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
Y Wie kann ich die Variable in der Try Catch returnen? Java Basics - Anfänger-Themen 3
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
B Inkrement von Variable Java Basics - Anfänger-Themen 8
V Variablen statische Variable einer Objektvariable zuordnen Java Basics - Anfänger-Themen 3
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
J JTextField Bezeichnung als Variable Java Basics - Anfänger-Themen 3
N Wie kann ich eine meine Variable Final machen? Java Basics - Anfänger-Themen 1
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
H Variable um 1 erhört ausgeben Java Basics - Anfänger-Themen 4
V Erste Schritte Eine Array-Variable mit Benutzereingaben befüllen Java Basics - Anfänger-Themen 3
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
L cannot find symbol variable Kon Java Basics - Anfänger-Themen 8
C Statischer Typ aber Variable nicht statisch? Java Basics - Anfänger-Themen 5
H Variable.methode aufstellen, verstehen Java Basics - Anfänger-Themen 2
S Variable einscannen Java Basics - Anfänger-Themen 30
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
J Input-Variable nicht sichtbar Java Basics - Anfänger-Themen 2
L Warum ist Variable null? Java Basics - Anfänger-Themen 3
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
S Variable Parameter Java Basics - Anfänger-Themen 5
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
P if - Statement erkennt variable nicht. Java Basics - Anfänger-Themen 12
J Ungewollte Wertveränderung einer Variable Java Basics - Anfänger-Themen 9
R Variablen Variable an FXML-Controller übergeben Java Basics - Anfänger-Themen 4
J Zugriff auf Variable in anderem Programm Java Basics - Anfänger-Themen 5
R variable istpositiv might not have been initialized Java Basics - Anfänger-Themen 2
A Methodenname aus variable Java Basics - Anfänger-Themen 2
L Variable aus einer Klasse in einer anderen Klasse nutzen Java Basics - Anfänger-Themen 6
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
Hanschyo Variable nicht initialisiert Java Basics - Anfänger-Themen 6
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
L Variable in If-Statement initialisieren Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben