2015-05-03 6 views
-2

Я сделал этот код в c# для моего проекта, и я, когда попытаюсь выполнить это, я получу цифры -ve. Я не хочу, чтобы число было меньше нуля. Вот почему я добавил в него цикл else if. Но все же его не работает. Пожалуйста помоги.Else if loop не выполняется

if (myString.Contains(input)) 
{ 
    int pos1 = myString.IndexOf(input); 
    int tpos = pos - pos1; 
    if (tpos < 20) 
    { 
     MessageBox.Show("You're Safe", "Important Info", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     MessageBox.Show(tpos.ToString()); 
    } 
    else if (tpos < 0) 
    { 
     MessageBox.Show("You are Vulnerable", "Critical Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); 
    } 
    else 
    { 
     MessageBox.Show("You are Vulnerable", "Critical Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); 
    } 
} 
+0

Если значение <0, вам не кажется, что оно также будет меньше 20? – Alex

+0

Теперь я получил ответ. :-) –

ответ

0

Перемещение else if над if, как это:

if (tpos < 0) 
       { 
        MessageBox.Show("You are Vulnerable", "Critical Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); 
       } 

else if (tpos < 20) 
       { 
        MessageBox.Show("You're Safe", "Important Info", MessageBoxButtons.OK, MessageBoxIcon.Information); 
        MessageBox.Show(tpos.ToString()); 
       } 

В вашем коде, если номер был отрицательным, он не удовлетворил первый if условия, и поэтому никогда не вошли в состояние else if. Теперь, если число отрицательно, оно будет проверено в самом первом условии.

+0

Решено. Спасибо –

0

Обратные условия. Первое условие всегда верно для чисел, меньших нуля.

+0

Возможно, вы захотите изменить некоторые слова в своем последнем предложении там ...;) – Chris

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