Nachprüfung 2.: Gerade Zahlen ausgeben

Cosma

Aktives Mitglied
Hallo, wieder mal ich.
Ich bin gerade bei einem Zahlenspiel, wo der Benutzer 3 Zahlen eingibt, aber ein Unterpunkt lässt mir keine Ruhe.
Es soll ausgegeben werden, wie viele gerade Zahlen eingegeben wurden.
Jetzt habe ich eine Lösung, die aber sehr gepfuscht ist und nur bei so wenigen Benutzerzahlen funktioniert:
Java:
public class gerade {
    
    public void isGrade(int x, int y, int z)
    {int zaehler = 0;
           
   
     if(x%2==0)
     {zaehler++;}
     else if(x%2==0 && y%2==0)
     {zaehler=2;}
     else if(x%2==0 && y%2==0 && z%2==0)
     {zaehler=3;}
     else if(y%2==0 && z%2==0)
     {zaehler=2;}
     else if(y%2==0)
     {zaehler=1;}
     else if(z%2==0)
     {zaehler=1;}
     else if(x%2==0 && z%2==0)
     {zaehler=2;}
    
     System.out.println("Es sind "+zaehler+" gerade Zahlen");
     
     
         
         
    }    
}
Habt ihr eine Idee, wie man dass allgemeiner und effizienter lösen könnte?
Danke, Cosma
 

XHelp

Top Contributor
Zunächste einmal: "Nachprüfung" im Titel ist völlig unnötig

Warum nicht einfach:
Java:
void nochKomischerName(int x, int y, int z) {
  int counter = 0;
  if (x%2==0) {
    counter++;
  }
  if (y%2==0) {
    counter++;
  }
...
}

P.S. Wenn es IMMER bei 3 Zahlen bleibt oder wenn du keine Lust hast es anders zu machen
 

Fu3L

Top Contributor
Java:
public void howManyEvenNumbers(int... x) {
  int counter = 0;
  for(int i = 0; i < x.length; i++) {
      if(x[i]%2 == 0) {
         counter++;
      }
  }
  System.out.println(counter);
}

public static void main(String[] args) {
   howManyEvenNumbers(1, 2, 3, 4, 5, 6, 7, 8, 9);
}

Für 7te Klasse mit halbem Jahr Java vllt noch etwas zu hart^^
 

Cosma

Aktives Mitglied
Danke (;
ich bin komplette Null im Programmieren (sieht man an der Nachprüfung).
Ja, arbeiten wir öfter. Aber wie sollte das hier gehen?
 

XHelp

Top Contributor
Gut, wenn man hier schon auf Eleganz SO viel Wert legt: die Methode sollte die Anzahl der geraden Zahlen zurückgeben. Ausgegeben sollte es woanders.
 

faetzminator

Gesperrter Benutzer
Ach Fu3L, das geht doch einfacher :bae:
Java:
public int getEvenCount(int... nums) {
    int counter = 0;
    for (int n : nums) {
        counter += (n + 1) % 2;
    }
    return counter;
}
Schön mathematisch gelöst :bae:

Edit: Auf Fu3L's Antwort: natürlich kann man auch statt [c](n + 1) % 2[/c] einfach [c](n + 1) & 1[/c] verwenden :) Dann wärs noch auf Bitebene :D
 
Zuletzt bearbeitet:

Fu3L

Top Contributor
Wollte nich zu viel auf einmal verändern^^ Man könnte auch mit

Java:
(x >> 1) << 1 == x

testen, ob eine Zahl gerade ist.. Geht erheblich schneller zur Laufzeit... Zur Programmierzeit dauerts vllt etwas länger^^ :D

Seh grad beim Vorschau gucken: @faetzminator: Schöne Lösung ;)

@faetzminator's edit: Noch schönere Lösung^^ :D
Trifft vllt nicht mehr ganz das ursprüngliche Problem, aber Programmierkunst ist doch auch wichtig :D
 
Zuletzt bearbeitet:

Cosma

Aktives Mitglied
Java:
public void howManyEvenNumbers(int... x) {
  int counter = 0;
  for(int i = 0; i < x.length; i++) {
      if(x[i]%2 == 0) {
         counter++;
      }
  }
  System.out.println(counter);
}

public static void main(String[] args) {
   howManyEvenNumbers(1, 2, 3, 4, 5, 6, 7, 8, 9);
}

Für 7te Klasse mit halbem Jahr Java vllt noch etwas zu hart^^

Vom Prinzip ist es nicht zu hart ^^
Ich bin wirklich nicht gut, sonst hätt ich keine Nachprüfung.
Mein abgewandelter Code jetzt:

Java:
public class gerade {
    public void machGrade(int zahl)
    { int[] allezahlen=new int[zahl];
        int zaehler=0;
        for(int i=0;i<allezahlen.length;i++)
        {if(allezahlen[i]%2==0)
        {zaehler++;}
            
            }
   System.out.println(zaehler);
}
}
wenn ich es durchführen lasse und eine gerade Zahl eingegeben hab, gibt es mir die einfach aus?!
 

xehpuk

Top Contributor
wenn ich es durchführen lasse und eine gerade Zahl eingegeben hab, gibt es mir die einfach aus?!
Weil das Array mit 0en gefüllt ist.

Ich schieß jetzt auch mal den Vogel ab:
Java:
public static int getEvenCount(int... nums) {
	int counter = 0;
	for (int n : nums)
		counter += n & 1 ^ 1;
	return counter;
}
 

nrg

Top Contributor
jetzt wird aus istGerade plötzlich machGerade? du fragst, wie du mehrere Zahlen überprüfen könntest und übergibst wieder nur eine einzige? für was soll denn alleZahlen sein? das ist ein array voll n 0en (wobei n hier zahl ist).
 

Fu3L

Top Contributor
Erstmal: Das allllllerwichtigste beim Programmieren: Einrückung!

Java:
   class gerade {
		public void machGrade(int zahl) {
			int[] allezahlen = new int[zahl];
			int zaehler = 0;
			for (int i = 0; i < allezahlen.length; i++) {
				if (allezahlen[i] % 2 == 0) {
					zaehler++;
				}
			}
			System.out.println(zaehler);
		}
	}

allezahlen enthält nur 0en, deswegen gibts auch zahl viele zahlen bei denen bei division durch 2 kein rest bleibt ;)
 

Cosma

Aktives Mitglied
Java:
public void howManyEvenNumbers(int... x) {
  int counter = 0;
  for(int i = 0; i < x.length; i++) {
      if(x[i]%2 == 0) {
         counter++;
      }
  }
  System.out.println(counter);
}

public static void main(String[] args) {
   howManyEvenNumbers(1, 2, 3, 4, 5, 6, 7, 8, 9);
}

Für 7te Klasse mit halbem Jahr Java vllt noch etwas zu hart^^

Erstmal: Das allllllerwichtigste beim Programmieren: Einrückung!

Java:
   class gerade {
		public void machGrade(int zahl) {
			int[] allezahlen = new int[zahl];
			int zaehler = 0;
			for (int i = 0; i < allezahlen.length; i++) {
				if (allezahlen[i] % 2 == 0) {
					zaehler++;
				}
			}
			System.out.println(zaehler);
		}
	}

allezahlen enthält nur 0en, deswegen gibts auch zahl viele zahlen bei denen bei division durch 2 kein rest bleibt ;)

Wie funkt es dann nur, wenn ich die Methode aufrufe, dass dann die eingegebenen Zahlen gleich dem Array sind? Das versteh ich nur grad nicht...
 

Fu3L

Top Contributor
Das sind so genannte varargs

Java:
public void machWasMitEinemArray(int... x) {
  //Hier kannd as Array x benutzt werden!
}

Kann aufgerufen werden mit:

Java:
machWasMitEinemArray(1, 2, 3, 4);
oder:
Java:
int[] i = new int[] { 1, 2, 3, 4 };
machWasMitEinemArray(i);

Durch das
Code:
...
werden alle übergebenen Argumente in ein Array zuzammengefasst.

Edit: Bissl präziser:
Java:
public void machWasMitEinemArray(String s, int... x) {
  //Hier kannd as Array x benutzt werden und der String s
}

Hier werden natürlich nur alle Argumente nach dem String zum Array hinzugefügt:

Java:
machWasMitEinemArray("Hallo", 1, 2, 3, 4);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Nachprüfung: Probleme mit Zeichendreieck Java Basics - Anfänger-Themen 14
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
JavaBeginner22 Punkt auf Gerade Java Basics - Anfänger-Themen 59
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
B Methoden Rekursiv festellen, ob eine Zahl gerade-oft vorkommt oder nicht Java Basics - Anfänger-Themen 4
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
P Herausfinden, auf welchem Panel des CardLayouts man gerade ist? Java Basics - Anfänger-Themen 12
D Guten Tag mache gerade eine Umschulung zum FiSi war leider jetzt 2 Wochen Krank und wir hatten Prozendurale Programmierung. Java Basics - Anfänger-Themen 3
Henri ich verstehe gerade nicht die Methode Java Basics - Anfänger-Themen 6
D Ausgeben welcher Thread gerade Arbeitet Java Basics - Anfänger-Themen 8
W Erste Schritte Zweidimensionales Array - Gerade Zahlen anzeigen lassen Java Basics - Anfänger-Themen 3
H Gerade Zahlen aus Array entfernen Java Basics - Anfänger-Themen 8
M Gerade/ungerade---alter Forenbeitrag Java Basics - Anfänger-Themen 4
C DoublyLinkedList - Gerade zahlen ausgeben lassen Java Basics - Anfänger-Themen 2
Thallius String und \n. Habe wohl gerade Brett vorm Kopf Java Basics - Anfänger-Themen 13
K Rekursion gerade Zahlen addieren Java Basics - Anfänger-Themen 11
A Gerade Terme der Fibonacci-Folge aufsummieren Java Basics - Anfänger-Themen 12
P Gerade Zahl sortieren Java Basics - Anfänger-Themen 11
K Schnitt zweier Ebenen ergibt Gerade Java Basics - Anfänger-Themen 10
F Zugriff auf Pfad des gerade ausgeführten Programms? Java Basics - Anfänger-Themen 14
J Erste Schritte Array: Häufigkeiten bzw. gerade/ungerade Zahlen Java Basics - Anfänger-Themen 5
T Erste Schritte Berechnung von gerade und ungerade Zahlen Java Basics - Anfänger-Themen 10
M Gerade Zahlen aus einer Zahl summieren Java Basics - Anfänger-Themen 9
S Gerade bzw. Ungerade Zufallszahl generieren Java Basics - Anfänger-Themen 5
M Ausgabe einer gerade Zahl nur mit Addition,subtraktion und vergleichsoperatoren! Java Basics - Anfänger-Themen 4
F kleines Programm für ungerade oder gerade Zahl. Java Basics - Anfänger-Themen 18
Xtracter 3 gerade, 3 ungerade, 3 gerade, usw. Zahlen aufzählen Java Basics - Anfänger-Themen 20
S Senkrechte Gerade Java Basics - Anfänger-Themen 11
R Wird Programm gerade beendet? Java Basics - Anfänger-Themen 10
W Fange gerade an zu programmieren! Java Basics - Anfänger-Themen 6
K zufallszahlen int / double, gerade / ungerade problem . Java Basics - Anfänger-Themen 2
J Habe gerade erst mit Java begonnen - Frage zu JTabbedPane Java Basics - Anfänger-Themen 3
M gerade und ungerade Zahl ermitteln Java Basics - Anfänger-Themen 11
X Werte vergleichen ob gerade oder ungerade geht das? Java Basics - Anfänger-Themen 4
B Gerade ungerade Zahlen Java Basics - Anfänger-Themen 3
G gerade zahlen größer und kleiner null Java Basics - Anfänger-Themen 6
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
M negative Zahlen bei Intervallen Java Basics - Anfänger-Themen 10
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
J Operatoren Zahlen addieren Java Basics - Anfänger-Themen 13
B Threads Counter mit ungeraden Zahlen Java Basics - Anfänger-Themen 32
JavaBeginner22 Java 2 Zufalls zahlen generieren. Java Basics - Anfänger-Themen 11
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
sserio Befreundete Zahlen Java Basics - Anfänger-Themen 7
AhmadSlack Verzweigungen zahlen multiplizieren Java Basics - Anfänger-Themen 4
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
U Lotto-Zahlen App Java Basics - Anfänger-Themen 34
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
H Zahlen kürzen Java Basics - Anfänger-Themen 2
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
H Ungerade Zahlen ausgeben von 1 bis 1000 Java Basics - Anfänger-Themen 8
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben