Einzelnen Beitrag anzeigen
  #25 (permalink)  
Alt 27.03.18
next user next user ist offline
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mante Beitrag anzeigen
es tut mir echt leid wenn ich das nicht so verstehe - ich hoffe ich nerve euch nicht schon
Solange wir antworten sind wir nicht genervt genug.
Ich mit meiner Kanne und Doc mit seinem speziellen Tee, wir haben uns etwas Geduld angetrunken...

=== === === === === === === === === === === ===

Zitat:
Zitat von mante Beitrag anzeigen
ich dachte folgendes - case1 (zufällige Zahl ist eins) wenn der Code öfters hintereinander 1 liefert - soll für weiteren Code nur einmal eins weiter gegeben werden cas1 Range 1 ist zufallszahl1 (1,1,1,1 ist schlecht :-)
Der Gedanke ist ja nicht verwerflich, lediglich nicht richtig umgesetzt. Aber es geht auch deutlich einfacher.

=== === === === === === === === === === === ===

Zitat:
Zitat von mante Beitrag anzeigen
bool CheckNumber(int Range) // Funktion überprüft mir ob vor der aktuellen Zahl auch eine 1 war - wenn die Zahl vorher ungleich war dann liefert sie true wenn sie gleich war liefert sie false dieses gleich oder ungleich übergebe ich in die while Schleife in der die Zufallszahl entsteht (case1 für eins damit:

while(!CheckNumber(true))

und nur wenn die Zahl ungleich ist wird der Code in der while Schleife ausgeführt
CheckNumber (Range);
Print ( "Die Zahl ist" +1);
Richtig verstanden, verkehrt umgesetzt. Das "true" gehört, wenn es denn sein muss, neben den Funktionsaufruf. Dazu dann
aber kein Ausrufezeichen! Zum besseren Verständnis:
Code:
(CheckNumber() == true) => ist GLEICH wie (CheckNumber())
(CheckNumber() == false) => ist GLEICH wie (!CheckNumber())
=== === === === === === === === === === === ===

Zitat:
Zitat von mante Beitrag anzeigen
ihr denkt jetzt sicher ich bin komplett bescheuert
War das ne Frage, oder outest du dich grad?
Spaß beiseite, quatsch! Jeder Anfänger wird Fragen haben, die er später belächeln kann.

=== === === === === === === === === === === ===

Gehen wir das ganze mal ausführlich durch:
(Ich beschreibe es anhand meiner ursprünglichen Funktion)
Code:
// Globale Variablen => überall im Code nutzbar
// Also außerhalb jeglicher Funktion erstellen
int randNumber = 0, lastNumber = 0;

// Die Funktion zum überprüfen, natürlich auch außerhalb
// jeglicher Funktion erstellen
bool CheckNumber()
{
   if(randNumber != lastNumber)
      return true;   // Zahlen sind unterschiedlich
   else
      return false;  // Zahlen sind identisch
}

// Den folgenden Code dann dort, wo du die Zufallszahlen
// erhälst. Ein switch ist überhaupt nicht notwendig!
randNumber = // Dein ..., welches die Zufallszahl liefert!

while(!CheckNumber()) // Also, solange false (Zahlen gleich) geliefert wird...
{
   // Die geprüfte Zahl ist mit der letzten identisch, daher
   // muss randNumber jetzt eine neue Zufallszahl erhalten,
   // welche im nächsten Schleifendurchlauf durch den
   // Schleifenkopf geprüft wird. Das geht so lange weiter,
   // bis die Zahlen ungleich sind. Dann wird die Schleife abgebrochen!
   randNumber = // Neue Zufallszahl...
}

// Nach der Schleife hat randNumber jetzt eine Zahl
// ungleich lastNumber. Diese kannst du nun für was
// auch immer weiter verarbeiten...
Ich hatte diese Funktion erstellt, da du den Thread mit eben einer Überprüfungsfunktion gestartet hast.
Bei einer so simplen Prüfung könnte man aber auch die Funktion weglassen und die Schleife mit
Code:
while(randNumber == lastNumber)
erstellen.