Заменить цикл For на оператор Do While? - PullRequest
0 голосов
/ 17 мая 2018
Module Module1 
   Sub Main() 
      For value As Integer = 9 To 0 'Step 1'
         System.Console.WriteLine(value) 
      Next 
   End Sub 
End Module 

Это должно быть просто, представьте себе, как это можно легко изменить с оператора "For Loop" на оператор "Do While"?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Это никогда не войдет в цикл, так как начальное значение больше, чем конец, и шаг не является отрицательным. Посмотреть здесь: https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/for-next-statement#technical-implementation Чтобы превратить это в Do-While, вам сначала нужно проверить, действительны ли начальное и конечное условия, иначе оно застрянет в бесконечном цикле.

0 голосов
/ 17 мая 2018

Вместо этого вы можете использовать следующую петлю Do While:

Dim value As Integer = 9

Do While value <= 9 And value >= 0
    Console.WriteLine(value)
    value -= 1 'this count from 9 to 0
Loop

Но ваш For не работает таким образом.В настоящий момент цикл For не выводит никакого значения.Похоже, вы установили неправильные шаги:

For value As Integer = 9 To 0 Step -1
    Console.WriteLine(value) 'this count from 9 to 0
Next     

Циклическое решение Do While для подсчета от 0 до 9:

Dim value As Integer = 0

Do While value <= 9 And value >= 0
    Console.WriteLine(value)
    value += 1 'this count from 0 to 9
Loop

For цикл решения для отсчета от 0 до 9:

For value As Integer = 0 To 9 Step 1
    Console.WriteLine(value) 'this count from 0 to 9
Next
...