Problem mit Methoden Ausgabe

Marox

Mitglied
Moin,

ich bin relativ neu in Java und habe eine Aufgabe von meinem Prof. die ich nach langem Hin und Her Probieren und Googlen immer noch nicht lösen kann.

Es geht darum eine Multiplikationstabelle ausgeben zu lassen, die beiden Zahlen werden vom Nutzer eingelesen. Die Tabelle an sich funktioniert und alles andere auch...

Ich hab nun die Tabelle als public static void multi (int a, int b) { ....... geschrieben
Einzigste Bedingung, die mein Code aufweisen MUSS, ist dass die Tabelle im main Programm mit System.out.println(multi(x, y)); ausgegeben wird....

nur mit multi(x, y) funktioniert es, aber die Aufgabenstellung besagt eben, dass das System.out.println noch davor gehört und das gibt mir nun den kompletten Overkill :bahnhof:...ich glaube schon fast, dass uns der Prof. auf eine falsche Fährte locken will?

Danke für jede Hilfe

Achja, und bitte postet keine zu komplizierten Code Zeilen und dergleichen, ich bin total neu in dem Gebiet...

Cheers
 

stg

Top Contributor
Poste mal die gesamte Aufgabenstellung...

Vermutlich ist es so gemeint, dass multi(x,y) ein Objekt vom Typ "Multiplikationstabelle" zurückgibt, bei welchem du dann die toString()-Methode entsprechend überschreiben müsstest.
 

Marox

Mitglied
was?? :) nochmal für Anfänger :D

hier ist mal mein Code, die Aufgabenstellung will ich hier lieber nicht reinschreiben, weil das Eigenmaterial vom Prof ist...
und genau das Ding soll jetzt so sein, dass am Ende nicht multi(i, j); steht , sondern System.out.println(multi(i, j));

Java:
import java.util.Scanner;

public class Multiplikationstabelle {

public static void multi(int a, int b) {

for (int y = 1; y <= b; y++) {
for (int x = 1; x <= a; x++) {
int ergebnis = x * y;

String leer = ergebnis < 10 ? " " : " ";	


System.out.print(ergebnis + leer); 

}
System.out.println();

}

System.out.println();

}

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

System.out
.print("Dieses Programm gibt eine Multiplikationstabelle aus."
+ "\nGeben Sie bitte eine Zahl i ein: ");
int i = in.nextInt();

while (i > 15) {
System.out.println("Die erste Zahl darf nicht größer als 15 sein!");
i = in.nextInt();
}

System.out.print("Geben Sie bitte eine Zahl j ein: ");

int j = in.nextInt();

while (j < 0) {
System.out.println("Die zweite Zahl darf nicht kleiner als 0 sein");
j = in.nextInt();
}

multi(i, j);

}

}
 
Zuletzt bearbeitet von einem Moderator:

Marox

Mitglied
hm, das hilt mir auch alles nicht weiter :(, könntest du das etwas ausführlicher beschreiben?

ich hatte die Idee das alles mittels for schleifen in ein 2D Array zu speichern, aber da funktioniert du Ausgabe nicht wirklich....ich bekomm da nur ganz viele java.lang.q34ibfq errors.....
 

JavaMeister

Gesperrter Benutzer
Also ohne Aufgabenstellung kann man vielleicht noch ableiten, was du machen möchtest.

Aber ohne Code irgentwelche Fehler tracen wird wohl ein Ding der Unmöglichkeit sein.
 

Marox

Mitglied
Die Aufgabe ist die, eine Multiplikationstabelle ausgeben zu lassen...die beiden Werte werden vom Nutzer eingelesen.
Also z.B. x=3, y=6
Dann müsste die Tabelle am Ende ungefähr so aussehen:
1 2 3 4 5 6
2 4 6 8 10 12
3 6 9 12 15 18

Und das ganze Ding halt mithilfe von Methoden, sodass der Nutzer lediglich hinzuschreiben braucht: System.out.println(multi(3, 6));

und die Tabelle soll erscheinen....das ist alles....
 

JavaMeister

Gesperrter Benutzer
Die Methode soll nun das Ergebnis der Mulitplikationstabelle als String oder Array zurückgegeben. So wie du es geschrieben hast, muss es zwingend String sein, da sonst die Ausgabe nicht korrekt wird ohen weiteres.

Also brauchen wir zunächst eine Methode, die überhaupt etwas zurückgeben kann. (String)

Dann müssen wir uns überlegen, wie wir die Tabelle Bauen.

Also wir müssen pro zeile y mal etwas machen.

Das bedeutet es sind genau 2 for-Schleifen notwendig.

die eine geht von 1 bis x und die andere von 1 bis y.

Die sind eben verschachtelt (ist klar ;)) also die innere sorgt dafür, dass das x *y ist.

Dann konkatieren wir das Ergebnis : Ausgabe = Ausgabe + (x *y ) + " ";

Nach jeder Zeile müssen wir einen Umbruch machen.

dann return "Ausgabe" und siehe da läuft.
 

Marox

Mitglied
so hab ich das bis jetzt.... versucht mit einem Array, nur es kommt nur Schrott raus...wobei er eigentlich alles in dem Array richtig gespeichert hat...

Java:
public class Variante2 {

	public static int[][] mtab(int a, int b) {
	
		int ergebnis = 0;
		int [][] array = new int[a][b];
		//a = array.length;
		//b = array[1].length;
		
		for (int x = 1 ; x <= a - 1; x++) {
					
			for (int y = 1; y <= b - 1; y++) {
				
				ergebnis = x * y;
				
				String leer = ergebnis < 9 ? "  " : " ";
				
				array[x][y] = ergebnis;
						
			}
			
		}
		
		System.out.println(array[2][2]);
		return array;
		

	}

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		System.out
				.print("Dieses Programm gibt eine Multiplikationstabelle aus."
						+ "\nGeben Sie bitte eine Zahl i ein: ");
		int i = in.nextInt();

		while (i > 15) {
			System.out.println("Die erste Zahl darf nicht größer als 15 sein!");
			i = in.nextInt();
		}

		System.out.print("Geben Sie bitte eine Zahl j ein: ");

		int j = in.nextInt();

		while (j < 0) {
			System.out.println("Die zweite Zahl darf nicht kleiner als 0 sein");
			j = in.nextInt();
		}

		System.out.println(mtab(i, j));

	}

}
 

Marox

Mitglied
das mit einem String hab ich auch probiert, nur hab ich mit der Ausgabe immer wieder das selbe Problem, dass er für das Array etwas wie: [[I@3ebfc8e0 ausgibt
 

Marox

Mitglied
hier ist noch meine Lösung mit String, aber ich glaube das ist Blödsinn, weil ich hier in dem Fall für return sage, er solle NIX ausgeben, oder macht das hier doch Sinn?

Java:
import java.util.Scanner;

public class Multiplikationstabelle {

	public static String mtab (int a, int b) {
		
		String ret = "";
		
		int ergebnis = 0;
		
		for (int y = 1; y <= b; y++) {
			for (int x = 1; x <= a; x++) {
				ergebnis = x * y;

				String leer = ergebnis < 10 ? "  " : " ";	 
				
				System.out.print(ergebnis + leer); 				

			}
			
			System.out.println();
		}

		System.out.println();
		
		return ret;

	}

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		System.out.print("Dieses Programm gibt eine Multiplikationstabelle aus."
						+ "\nGeben Sie bitte eine Zahl i ein: ");
		int i = in.nextInt();

		while (i > 15) {
			System.out.println("Die erste Zahl darf nicht größer als 15 sein!");
			i = in.nextInt();
		}

		System.out.print("Geben Sie bitte eine Zahl j ein: ");

		int j = in.nextInt();

		while (j < 0) {
			System.out.println("Die zweite Zahl darf nicht kleiner als 0 sein");
			j = in.nextInt();
		}

		System.out.println(mtab(i, j));

	}

}
 

stg

Top Contributor
Habe deinen Code nur geringfügig angepasst und etwas gekürzt, damit du siehst, was ich in meinem ersten Beitrag gemeint habe:

Java:
public class Multiplikationstabelle {
	private int a, b;

	public static Multiplikationstabelle mtab(int i, int j) {
		Multiplikationstabelle m = new Multiplikationstabelle();
		m.a = i;
		m.b = j;
		return m;
	}

	public String toString() {
		String ret = "";
		int ergebnis = 0;
		for (int y = 1; y <= b; y++) {
			for (int x = 1; x <= a; x++) {
				ergebnis = x * y;
				String leer = ergebnis < 10 ? " " : " ";
				ret += (ergebnis + leer);
			}
			ret += "\n";
		}
		ret += "\n";
		return ret;
	}

	public static void main(String[] args) {
		System.out.println(mtab(4, 8));
	}
}

Ausgabe:

Code:
1 2 3 4 
2 4 6 8 
3 6 9 12 
4 8 12 16 
5 10 15 20 
6 12 18 24 
7 14 21 28 
8 16 24 32
 

Marox

Mitglied
okay, verstehe, also lag ich doch nicht so ganz falsch^^, vielen Dank !!!!

P.S. könnest du evtl. auch den Fehler finden, den ich in der Array-Variante gemacht hab?
 

JavaMeister

Gesperrter Benutzer
Wenn du ein Array ausgibst mit

sysout (new Int[] {1,2,3});

dann bekommst du nur den hashwert einer Zufallszahls (aka referenz) des Objekts also Array von int.

Wenn du das ausgen möchtest, muss du das array durchlaufen und jedes element einzelnt ausgeben.
 

Marox

Mitglied
...und genau das geht irgendwie nicht, ich kann ja auch nicht das return vor die for-schleife packen (schön wärs).... dennoch habe ich überall im Internet nur das gesehen, so wie ich es auch in meiner Array Variante beschrieben hab...trotzdem, geht das nicht. Er speichert zwar alles sauber im Array ab, aber das komplette Array auf einmal auszugeben funkt nicht....
jedes Element einzeln ausgeben wie du sagst läuft nicht...dazu müsste ich das return ja in die Schleife packen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Problem bei Ausgabe von Feldern und Methoden! Java Basics - Anfänger-Themen 2
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
G Interpreter-Fehler Problem mit void-Methoden Java Basics - Anfänger-Themen 2
M Problem mit get- und set-Methoden Java Basics - Anfänger-Themen 5
F Problem bei StringBuilder Methoden Java Basics - Anfänger-Themen 11
S Problem mit Rückgabe Wert von Methoden Java Basics - Anfänger-Themen 5
K GUI Button methoden/void Problem Java Basics - Anfänger-Themen 6
J Problem mit Klassen und Methoden Java Basics - Anfänger-Themen 7
Y split()-Methoden problem Java Basics - Anfänger-Themen 21
K OOP Methoden überladen, wo liegt das Problem? Java Basics - Anfänger-Themen 22
F Generische Methoden Problem Java Basics - Anfänger-Themen 5
Y Problem mit einfachen Methoden Java Basics - Anfänger-Themen 18
S Java Verständnis Problem Methoden etc. Java Basics - Anfänger-Themen 22
Y Problem mit Methoden Java Basics - Anfänger-Themen 3
J Methoden/Klassen Problem Java Basics - Anfänger-Themen 9
E 2 Klassen - Problem bei Methoden Java Basics - Anfänger-Themen 22
K Methoden Problem Java Basics - Anfänger-Themen 2
J Methoden Problem Java Basics - Anfänger-Themen 13
A Problem mit Methoden Java Basics - Anfänger-Themen 18
G (Anfängerproblem) Problem mit dem Aufruf von public-Methoden Java Basics - Anfänger-Themen 3
A Problem: Aufruf von Methoden mit Variablen Java Basics - Anfänger-Themen 7
A Methoden Problem Java Basics - Anfänger-Themen 6
L Problem mit 2 Methoden // return? Java Basics - Anfänger-Themen 8
T Methoden / Klassen Problem Java Basics - Anfänger-Themen 11
frau-u Problem mit Klassen und Vererbung - benutzen von Methoden Java Basics - Anfänger-Themen 2
G Problem mit Methoden Java Basics - Anfänger-Themen 9
M Problem mit nicht statischen Methoden Java Basics - Anfänger-Themen 6
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben