2013-11-06 4 views
0

У меня есть два модуля с инструкцией if.Оператор IF не работает должным образом

Вот два фрагмента кода.

int sum; 
     int input; 

     singleDigit(ref firstRandom, ref secondRandom); 

     Console.Write("{0} + {1} = : ", firstRandom, secondRandom); 
     input = Convert.ToInt16(Console.ReadLine()); 

     sum = firstRandom + secondRandom; 

     if (firstRandom + secondRandom == sum) 
     { 
      checkanswergradeoneaddition(); 
     } 

     else 
     { 
      checkanswergradeoneadditionFalse(); 
     }` 

Вот модуль, на который ссылается последний. Пожалуйста, имейте в виду, что я только учился в программировании с 2 сентября.

 static void checkanswergradeoneadditionFalse() 
    { 
     Random rnd = new Random(); 
     int responseTwo = rnd.Next(0, 3); 

      switch (responseTwo) 
      { 
       case 1: 
        Console.WriteLine("Incorrect, mush!"); 
        break; 
       case 2: 
        Console.WriteLine("Wrong again, Einstein"); 
        break; 
       default: 
        Console.WriteLine("Default"); 
        break; 
      } 
    } 

Не работает должным образом.

+4

define 'не работает должным образом' .. как он должен работать? Я могу видеть только один оператор if в представленных вами образцах кода. Где другой? – DGibbs

+1

(1) В коде, который вы отправили, есть только _one_ 'if'. (2) Вы не сказали, что делает ваш код, что он должен делать, и почему они отличаются. –

+1

Пожалуйста, объясните, что вы хотите достичь, и какова ваша ошибка? –

ответ

1

Я думаю, что я получаю то, что вы пытаетесь сказать. Ваш оператор firs if всегда будет правдой, поскольку он не сравнивает ни один из пользователей.

int sum; 
     int input; 

     singleDigit(ref firstRandom, ref secondRandom); 

     Console.Write("{0} + {1} = : ", firstRandom, secondRandom); 
     input = Convert.ToInt16(Console.ReadLine()); 

     sum = firstRandom + secondRandom; 

     if (firstRandom + secondRandom == sum) 
     { 
      checkanswergradeoneaddition(); 
     } 

     else 
     { 
      checkanswergradeoneadditionFalse(); 
     }` 

Попробуйте изменить его:

int sum; 
     int input; 

     singleDigit(ref firstRandom, ref secondRandom); 

     Console.Write("{0} + {1} = : ", firstRandom, secondRandom); 
     input = Convert.ToInt16(Console.ReadLine()); 

     sum = firstRandom + secondRandom; 

     // Changed the first 'if' statement to compare the users input with the sum. 
     if (input == sum) 
     { 
      checkanswergradeoneaddition(); 
     } 

     else 
     { 
      checkanswergradeoneadditionFalse(); 
     }` 

Принять к сведению замечание выше первого, если заявление.

+1

Спасибо, что дали мне сравнение, чтобы я мог ясно видеть проблему. Я обязательно буду форматировать и быть более ясным из моих желаемых целей, когда дело доходит до кода в будущем, я хотел бы поблагодарить всех за конструктивную критику. Я приветствую любые данные, будь то положительные или отрицательные, поскольку я уверен, что это сделает меня лучшим программистом в будущем. –

4

взгляд на это:

sum = firstRandom + secondRandom; 

    if (firstRandom + secondRandom == sum) 
    { 
     checkanswergradeoneaddition(); 
    } 

Это не имеет никакого смысла. если сумма присваивается A + B, тогда A + B всегда будет равна. «Else» никогда не запустится.

может быть, это должно быть

if(input==sum) 
+0

Я думаю, что вы здесь. Ввод, который читается с консоли, никогда не используется, у меня есть ощущение, что оно должно быть здесь вместо суммы. – Ethan

+0

Благодарим за ответы, которые помогли, с тех пор я изменил код, чтобы решить проблемы, используя предложенные сообщения; похоже, сейчас работает. Я учился почти два месяца, мой преподаватель не совсем четко разбирается в своих методах обучения, он также заявил, что многие исследования должны проводиться дома. Я в колледже изучаю процедурное программирование, первый год, конечно. –

+0

продолжают работать над этим. Программирование поможет вам дружить с нашими новыми владельцами роботов через несколько лет. Также, пожалуйста, отметьте этот ответ, если это поможет (зеленая галочка). – AwokeKnowing

Смежные вопросы