2013-09-23 2 views
1

У меня есть текстовое поле, в котором люди вводят число или диапазон, например 12-15, и генерируется случайное число. В настоящее время, если второе число меньше первого, я могу заставить его работать, как я хочу, но не только в том случае, если указан только один номер.VB.net If or statement

rnum1 должен равняться rnum2, если нет слов (1) или меньше слов (0). (У меня есть это сделать, если это меньше.)

Dim words As String() = TextBox2.Text.Split("-") 
Dim rnum1 As String = words(0) 
Dim rnum2 As String = words(1) 
Dim RandomClass As New Random() 
Dim RandomNumber As Integer 

If rnum2 < rnum1 Then 
rnum2 = rnum1 

End If 

RandomNumber = RandomClass.Next(rnum1, rnum2) 

ответ

0

Изменить эту строку

Dim rnum2 As String = words(1) 

в

Dim rnum2 As String = IF(words.Length = 2, words(1), rnum1) 

Он проверяет, есть ли вы 2 элемента в массиве слов. Если это - он использует второй элемент массива, в противном случае он переназначает первый.

Давай думать об этом, это может быть достигнуто даже в этом:

Dim rnum2 As String = words(words.Length - 1) 

Если вы 2 элементов в массиве - это присвоит слова (1), в противном случае слова (0)

+0

Спасибо, Юрий, который работал отлично, но кажется, что я ... тогда ... не работает в конце концов. – gwilson

+0

Попробуйте изменить тип rnum1 и rnum2 от String до Integer. Таким образом, они будут сравниваться как числа. –

+0

Вот и все! Еще раз спасибо. – gwilson