Array

lisali

Erfahrenes Mitglied
Hallo,

ich habe bisher nur PHP-Kenntnisse und würde gerne ein Array in Java einbauen. Jetzt wollte ich eine Art Eliza-Programm machen, jedoch wird danach gefragt wie die Pizza belegt werden soll. Und ich wollte jede Zutat in ein Array speichern.

Bei mir sieht das momentan so aus:

Code:
	System.out.println("Do you like pizza, " + name + "? *** Please type y for Yes! ***");
	String pizza = Console.readln();

		if (pizza == "y")
		{
			for (int i=0; i<5; i=i+1)
			{
			System.out.println("Do you want cheese on your pizza?");
			String ingredient = Console.readln();
		
			int[] array = new int[0];
			array[0] = ingredient;
			array++;
		
			System.out.println("This is now on your pizza: " + array[] + "!");
			}
			
			System.out.println("Now, this is great! You've just ordered a pizza at ElizaPizza.com!");
			System.out.println("Thank you for your order, " + name + "! Bye!");
		
		}
		else
		{
		System.out.println("Well, that's too bad! I've just talked to you to sell one! Bye, " + name + "!");
		}

Beim Compilen mecker er bei der Ausgabe des Arrays rum, wo angezeigt werden soll was nun auf der Pizza drauf ist...

könnt mir bitte jemand helfen?


LG,

Lisa
 
Stattdessen musst du Arrays.toString(array) verwenden. Allerdings haste dann noch eckige Klammern drumrum. Sonst mußt du es selbst durch Iteration zu einem String konkatenieren.
 
So sollte es gehen.

Strings in Java immer mit equals vergleichen. Naja schaus dir an.

Und lies dir bitte ein Buch zu den Java-Grundlagen durch. Links hier in der Linkliste des Forums.

Java:
if (pizza.equals("y")) {
                        String [] array = new String[5];
			for (int i=0; i<array.length; i=i++) {
			System.out.println("Do you want cheese on your pizza?");
			String ingredient = System.console().readLine();
		
			array[i] = ingredient;
		
			System.out.println("This is now on your pizza: " + Arrays.toString(array) + "!");
			}
			
			System.out.println("Now, this is great! You've just ordered a pizza at ElizaPizza.com!");
			System.out.println("Thank you for your order, " + name + "! Bye!");
		
		}
		else {
		System.out.println("Well, that's too bad! I've just talked to you to sell one! Bye, " + name + "!");
		}
 
Hey vielen Dank!

Ich habe das getestet und er sagt mir "cannot find symbol" in der Zeile:

System.out.println("This is now on your pizza: " + Arrays.toString(array) + "!");
 
Okay, ich hab gerade nachgeguckt, dass es daran liegt, dass ich das noch "importen" musste.

Jetzt funktioniert es auch, jedoch ist es irgendwie eine Endlosschleife, wie es scheint. Die Ausgabe ist dann so, wenn ich z.B. Salami eingebe:

Code:
This is now on your pizza: [Salami,null,null,null,null]!

Und die Frage wird ja immer wieder gestellt (Also die Frage lautet nun bei mir was man auf einer gut-schmeckenden Pizza erwartet).
Und bei jeder Eingabe wird das in dem selben Schema wie oben weitergeführt. Das heißt die Restfelder (wo null steht), werden nicht ausgefüllt.

Woran könnte das liegen? Der Array wird doch eigentlich durch

Code:
array[i] = ingredient;

in jedem Schleifendurchgang um 1 erhöht?
 
Mach mal aus

Java:
for (int i=0; i<array.length; i=i++)

folgendes:

Java:
for (int i=0; i<array.length; i++)

oder

Java:
for (int i=0; i<array.length; i=i+1)

oder

Java:
for (int i=0; i<array.length; i=++i)

Denn i=i++ ist equivalent zu i=i!
 
Zuletzt bearbeitet:
Zurück