Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

203
Views
Mientras Loop funciona con || pero no &&, sin entender ¿Por qué?

El objetivo del programa es tirar dos dados hasta que ambos sumen 6. Cuando usé && en la declaración while, se detiene después de que un dado sea igual a 6. ¿Por qué? ¿No debería && probar la primera condición y luego, si es correcta, probar la segunda?

 while ((diceOne != 6) || (diceTwo != 6)) { diceOne = numberGeneration.Next(1, 7); diceTwo = numberGeneration.Next(1, 7); attempt = ++attempt; Console.WriteLine("Your first dice is: " + diceOne + " your second dice is: " + diceTwo); Console.WriteLine("Press any button to continue"); Console.ReadKey(); } Console.WriteLine("It took you " + attempt); Console.WriteLine("Press any key to continue"); Console.ReadKey();
over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

Se detiene porque rompes la condición de que un dado sea diferente de 6.

 while ((diceOne != 6) && (diceTwo != 6))

Mientras que se ejecutará mientras ambas condiciones sean verdaderas.

over 4 years ago · Santiago Trujillo Report

0

Estoy de acuerdo con @Pedro, también puede usar la declaración de break en el ciclo while(true) y detener el ciclo cuando ambos dados son iguales a 6:

 while (true) { diceOne = numberGeneration.Next(1, 7); diceTwo = numberGeneration.Next(1, 7); attempt = ++attempt; Console.WriteLine("Your first dice is: " + diceOne + " your second dice is: " + diceTwo); Console.WriteLine("Press any button to continue"); Console.ReadKey(); if (diceOne == 6 && diceTwo == 6) break; } Console.WriteLine("It took you " + attempt); Console.WriteLine("Press any key to continue"); Console.ReadKey();
over 4 years ago · Santiago Trujillo Report

0

Tenga en cuenta que la condición del ciclo while es la condición necesaria y suficiente para continuar el ciclo. (diceOne != 6) && (diceTwo != 6)) dice que "ambos dados no son 6". Cuando ambos dados no son 6, ciertamente desea continuar el bucle, por lo que es una condición suficiente, pero no es una condición necesaria. ¿Cuándo más le gustaría continuar el ciclo? ¡Cuando un dado es 6 y el otro no!

La condición necesaria y suficiente para continuar el bucle es que al menos un dado no sea 6, que es lo que || expresa.

over 4 years ago · Santiago Trujillo Report

0

Otros usuarios ya te han explicado por qué no funciona. Puedo sugerir modificar la declaración while de esta manera:

 while (!(diceOne == 6 && diceTwo == 6))
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!