Итак, назначение следующее: вы можете вводить все виды чисел, но когда вы вводите 0 два раза подряд, его нужно остановить. Первый раз ввести номер вашего не позволил ввести 0.Пока петля неправильно проверяет все условия?
Это код, у меня есть установка:
class MainClass
{
public static void Main (string[] args)
{
int givenNumber, prevNumber;
Console.WriteLine ("Enter a number: ");
int.TryParse (Console.ReadLine(), out givenNumber);
// I've set the prevNumber to givenNumber because the variable has to be initialized
// before I can use it in the condition below. I thought setting it to the giveNumber
// wouldn't harm. Note that the first time your not allowed to enter 0
prevNumber = givenNumber;
while (givenNumber != 0 && prevNumber != 0) {
prevNumber = givenNumber; //Here is where they both are 0 at a given moment, but only after the condition.
Console.WriteLine ("Enter a number: ");
int.TryParse (Console.ReadLine(), out givenNumber);
}
Console.WriteLine ("Tada");
}
}
Проблема заключается в том, что он уже останавливается, когда вы только вошли один 0. Для пример, если я сначала должен ввести 7, а мой следующий номер будет 0. Когда я его отлаживаю, он говорит, что мой заданный номер равен 0, а prevNumber - 7, когда он возвращается к условию while, которое он останавливает и заканчивает. Когда программа заканчивает отладки, ясно говорит prevNumber = 7 и givenNumber = 0. Я использую условное И правильно, не так ли?
Любой ключ? Мне не разрешено использовать массивы для этого.
Заранее спасибо
попробуйте сделать это следующим образом: 'while ((givenNumber! = 0) && (prevNumber! = 0)) {' – RBarryYoung
@RBarryYoung Пробовал это без успеха – RandomPerson