Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

205
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda