Visual Basic создать цикл для подсчета четных чисел - PullRequest
0 голосов
/ 13 сентября 2018

Программа требует ввода положительных чисел и подсчитывает каждое четное число, используя функцию цикла, которая не учитывает шансы и заканчивается, если вводится O.

Я не уверен, как создать цикл или можно ли использовать if функцию внутри цикла.

Dim Count = 0
While (number mod 2 = 0) do
Count + 1 = Count

Ответы [ 4 ]

0 голосов
/ 06 ноября 2018

Функция считает четные числа:

REM function gets input, exits at 0 and adds positive even numbers.
DO
    INPUT X
    IF X = 0 THEN PRINT Y; " even numbers": END
    IF X > 0 THEN
        IF X / 2 = X \ 2 THEN Y = Y + 1
    END IF
LOOP
0 голосов
/ 13 сентября 2018

Предполагая, что вы получаете числа от некоторого ввода, вот как вы можете это сделать.Имейте бесконечный цикл с While True, затем для каждого числа, указанного на вашем входе, проверьте, является ли оно даже с использованием number mod 2 = 0.Это будет продолжаться вечно, поэтому вам нужно добавить какое-то условие (другое выражение if), чтобы остановить цикл while.Больше информации о циклах while здесь: https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/while-end-while-statement

Dim Count = 0
While True do
  
  If (number mod 2 = 0) Then
    Count + 1 = Count
  End If 
End While  
0 голосов
/ 13 сентября 2018

Будет полезно, если вы предоставите пример ввода, чтобы мы могли работать с реальным кодом и помочь вам найти правильное решение.

Если вы получаете ввод в виде, скажем, массива чисел, вы можете просто выполнить цикл через него, используя for или foreach и добавить дополнительное условие для проверки на 0, если вы хотите предварительно выйти:

For Each number As Integer In numbers
    If (number mod 2 = 0) Then
       Count = Count + 1
    End If 

    If (number = 0) Then
       Exit For
    End If
Next

Если у вас есть код, в котором каким-то образом number переинициализируется / переопределяется уже на каждой итерации, то то, что у вас есть, довольно близко к тому, что вам нужно:

While (number <> 0)
    If (number mod 2 = 0) Then
       Count = Count + 1
    End If
End While
0 голосов
/ 13 сентября 2018

Я на самом деле не очень хорошо понял вопрос, но что касается того, что, если вы не хотите, чтобы нечетные числа были включены, я предлагаю при подсчете добавить 2, а не один, так как переменная подсчета начинается с нуля do:

Dim Count+2

Кстати, когда вы хотите, чтобы отсчет прекратился? На 2 А возвращается к 0? Если это так, используйте оператор if

var Dim_count = 0; 
if(Dim_count == 0){Dim_count+2}
else if(Dim_count ==2){Dim_Count =0;}
...