ganzzahl

chho0013

Mitglied
hi leute!

Ich hab ein array mit bestimmten zahlen angegeben und es soll eine ganzzahl eingegeben werden. es soll geprüft werden ob die eingegebene zahl im array vorkommt, wenn ja soll ein "Juchhe" ausgegeben werden. Das alles mit hauptprogramm und funktion.

das hab ich soweit gemacht:
Java:
              Scanner s =new Scanner(System.in);
		int arr[]={2,3,5,7,11,13,17,19};
		System.out.print("Bitte eine Ganzzahl eingeben: ");
		int x=s.nextInt();
		
	    System.out.println(mindestensEinmalDrin(x,arr) + "Juchhe");
	}
	
	public static int mindestensEinmalDrin( int x, int arr[] )
	{   int a=0;
		for( int i=0; i<arr.length; i++)
		{
			if(arr[i]==x)
			a=arr[i];
		
		}
		return a;

aber irgendwie funzt das nicht so richtig!
was mach ich falsch ich weis einfach nicht mehr weiter???:L;(
 

Volvagia

Top Contributor
Du solltest die Ausgabe nur dann machen lassen, wenn auch wirklich nichts gefunden wurde.

Java:
public static void main(String[] args)
{
	Scanner s =new Scanner(System.in);
	int arr[]={2,3,5,7,11,13,17,19};
	System.out.print("Bitte eine Ganzzahl eingeben: ");
	int x=s.nextInt();

	try
	{
		mindestensEinmalDrin(x, arr);
		System.out.println("Juchhe. ^.^");
	}
	catch (IllegalArgumentException e)
	{
		System.out.println("Kein Juchhe. :(");
	}
}
public static int mindestensEinmalDrin(int x, int arr[])
{
	for( int i=0; i<arr.length; i++)
	{
		if(arr[i]==x)
			return(x);
	}
	throw new IllegalArgumentException("Nicht gefunden. :'(");
}
 
F

Firephoenix

Gast
Hi,
Das ist einer von den Fehlern den man vermeiden kann wenn man sich vorher auf dem Papier klar macht was die Methode machen soll (und ich wette hier wurde wieder erst angefangen irgendwas an Code hinzuschreiben der vielleicht funktioniert bevor man überhaupt den eigenen Ansatz verstanden hat).

Ich denke du wolltest sowas schreiben:
Ein Programm das eine Zahl übergeben bekommt, prüft ob die Zahl in einem Array ist und falls ja einen Text ausgibt.

Schau dir doch mal das "prüft ob die Zahl in einem Array ist" mal ganz fest an und überleg dir mal welcher *hust* boolean *hust Datentyp sich besser als Rückgabetyp eignen würde.

Dann wolltest du das ganze doch eigentlich in so einen Ablauf packen (Pseudocode)
Java:
//Zahl Einlesen
//wenn Zahl im Array
//Gebe Zahl und Text aus
//Ansonsten mache was anderes

Deine Methode macht aber folgendes:
-Speichere 0 in einer Variable
-Laufe das Array nach der gesuchten Zahl ab
-Findest du die Zahl speichere sie in der Variable
-Am Ende gebe die Variable zurück.

Aus den 4 Zeilen sieht man doch sofort, dass die Methode 0 zurückgibt wenn die Zahl nicht im Array ist.

Und dein Programm macht passend dazu dann:
-Gebe 0 oder die gesuchte Zahl + Juche aus

und genau das kommt auch raus :)

Gruß
 

Ähnliche Java Themen


Oben