Разобрать результат кода с конструкцией ElseIf - Visual Basic .NET

  1. vb.net1 2 3 4 5 6 7 8 9 10 11 12 13      Dim a As Integer         a = 20         If 3 < 2 Then             a = a + 20 '40         ElseIf 3 > 2 Then             a = a + 40 ' 80             a = a + 100  '180         Else             a = a + 200                     End If         Console.WriteLine(a)         Console.ReadLine()Вот код.Если считать то должно вывести 180 а не как 160.В чем ошибка?


textual

Код:

Dim a as integer=0
    If 3 > 2 Then 'Верно 
            a = a + 1 'а=1
            a = a + 2 'a=3 'Условие сработало идем к End If
        ElseIf 3 > 2 Then 
            a = a + 4        
        End If
        a = a + 10 'Просто срабатывает так как нет никаких условий a=13
        If 3 < 2 Then 'Не верно, пропускаем
            a = a + 20           
        ElseIf 3 > 2 Then 'Верно, обрабатываем события
            a = a + 40 'a=53
            a = a + 100 'a=153 'Идем к End If
        Else
            a = a + 200
        End If
        a = a + 500 'a=653
        If 3 < 2 Then 'Не верно, идем дальше
            a = a + 1000
        ElseIf 3 < 2 Then 'Не верно, идем дальше к Else
            a = a + 2000
        Else
            a = a + 4000 'a=4653
        End If
        a = a + 8000 'Просто прибавляем 8000 a=12653
        Debug.WriteLine(a)


Похожие ответы
  1. Доброго времени суток, такой вопросик, делаю программу, ответов много (ну как много, 4 ответа) У меня есть NumericUpDown, при увеличении значений (т.е. нажатии вверх) должен изменятся ответ в поле Textbox1.Text и в поле Textbox2.Text, а так же и нажатии вниз. Что я делаю не так? Vb.net vb.net1 2 3 4 5 6 7 8 9 10 11 Private Sub NumericUpDown1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged         For j = 1 To 4             If NumericUpDown1.Value + 1 Then                 TextBox1.Text = a(j)                 TextBox2.Text = b(j)             ElseIf NumericUpDown1.Value - 1 Then                 TextBox1.Text = a(j - 1)                 TextBox2.Text = b(j - 1)             End If         Next     End Sub

  1. Как выводить промежуточные результаты в TextBox при работающей программе? Просто присвоение срабатывает только по окончании работы программы.

  1. Здравствуйте! Подскажите начинающему программисту как результат sql запроса, состоящего из одной строки и нескольких столбцов, вывести в label, при этом между значениями столбцов вставить запятую. Запрос возвращает строку из таблицы "Адрес", в ней соответствующие поля: почтовый индекс, область, район, улица, дом.

  1. Всем здравствуйте. Например, Columns(0) с именем BDate (дата) содержит Дату (это вводит пользователь). Columns(1) с именем Month (число) должен на основании содержимого столбца BDate заполняться номером соответствующего этой дате месяца (DatePart...). Заполнение столбца Month должно происходить автоматически, сразу после ввода пользователем значения даты в столбце BDate.

  1. есть скрипт vbs. Возможно ли занести в label vb.net результат его работы? скрипт выдает имя залогинившего пользователя на удаленно машине в сети.

  1. Есть скрипт на powershell, который выводит список принтеров с домена:PowerShell1 2 3 4 $terminals = ("domen") $terminals | ForEach-Object { Get-WmiObject -class Win32_Printer -computer $terminals ` | Where-Object {$_.ShareName -ne $null} ` | select Name, ShareName, PortName } `результат его работы такой Name ShareName PortName ---- --------- -------- Xerox-3250 Xerox-3250 10.57.1.162 Xerox-3250 Xerox-3250 10.57.1.161 Xerox-3250 Xerox-3250 10.57.1.165 нашел в интернете библиотеку System.Management.Automation, которая интегрирует powershell в vb.net, и выводит результат в текстовое поле. вот весь код:vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 Imports System.Collections.ObjectModel Imports System.Management.Automation Imports System.Management.Automation.Runspaces Imports System.Text Imports System.IO Public Class Form2       Private Function RunScript(ByVal scriptText As String) As String           ' create Powershell runspace         Dim MyRunSpace As Runspace = RunspaceFactory.CreateRunspace()           ' open it         MyRunSpace.Open()           ' create a pipeline and feed it the script text         Dim MyPipeline As Pipeline = MyRunSpace.CreatePipeline()           MyPipeline.Commands.AddScript(scriptText)           ' add an extra command to transform the script output objects into nicely formatted strings         ' remove this line to get the actual objects that the script returns. For example, the script         ' "Get-Process" returns a collection of System.Diagnostics.Process instances.         MyPipeline.Commands.Add("Out-String")           ' execute the script         Dim results As Collection(Of PSObject) = MyPipeline.Invoke()           ' close the runspace         MyRunSpace.Close()           ' convert the script result into a single string         Dim MyStringBuilder As New StringBuilder()           For Each obj As PSObject In results             MyStringBuilder.AppendLine(obj.ToString())         Next           ' return the results of the script that has         ' now been converted to text         Return MyStringBuilder.ToString()       End Function       Private Function LoadScript(ByVal filename As String) As String           Try               ' Create an instance of StreamReader to read from our file.             ' The using statement also closes the StreamReader.             Dim sr As New StreamReader(filename)               ' use a string builder to get all our lines from the file             Dim fileContents As New StringBuilder()               ' string to hold the current line             Dim curLine As String = ""               ' loop through our file and read each line into our             ' stringbuilder as we go along             Do                 ' read each line and MAKE SURE YOU ADD BACK THE                 ' LINEFEED THAT IT THE ReadLine() METHOD STRIPS OFF                 curLine = sr.ReadLine()                 fileContents.Append(curLine + vbCrLf)             Loop Until curLine Is Nothing               ' close our reader now that we are done             sr.Close()               ' call RunScript and pass in our file contents             ' converted to a string             Return fileContents.ToString()           Catch e As Exception             ' Let the user know what went wrong.             Dim errorText As String = "The file could not be read:"             errorText += e.Message + "\n"             Return errorText         End Try       End Function         Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click         'run our script and put the result into our textbox         'NOTE: make sure to change the path to the correct location of your script         TextBox1.Text = RunScript(LoadScript("d:\скрипты\print_list.ps1"))     End Subставил библиотеку вот отсюда:https://www.nuget.org/packages/Syste...nt.Automation/ результат выполнения всего кода такой(см. вложение). Выводиться в TextBox все работает шикарно, но есть одно но. как можно (и возможно ли вообще) перепилить код так что бы информация выводилась по столбцам в ListView. Пожалуйста, помогите! буду рад вашей помощи! Заранее большое спасибо!!!

  1. Установил Visual Studio Community 2015 решил быстро наклепать небольшую программу и заметил, что из выдачи IntelliSense пропали некоторые результаты. С чем это связано? Конкретно здесь почему то нет метода ShowDialog Форма существует, что за фигня я не пойму

  1. vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Public Class Form1     Dim k As Integer     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Dim res, i, kontr, f As Integer         f = TextBox1.Text         TextBox2.Text = 1         res = Fact(f)         TextBox3.Text = res         kontr = 1         For i = 1 To f             kontr = kontr * i           Next         TextBox4.Text = kontr     End Sub     Function Fact(ByVal N As Long) As Long         Console.WriteLine(N)         Dim m As Integer         If N <= 0 Then             m = 1         Else             TextBox2.Text = TextBox2.Text + 1             m = Fact(N - 1) * N         End If         Console.WriteLine(m)         Return m       End Function End Class

  1. Добрый лень. Есть файл с кодированной базой. Для нее кем то было написано приложение, чтобы можно было узнать в каком разделе находится та или иная запись. При запуске "MyApp Форма125 base.dat" получается вот такой результат, пример: Раздел 2 Раздел 4 Раздел 5 Подраздел 1 Раздел 5 Подраздел 4 Раздел 7 и так далее пока искомая строка "Форма125" найдена На Bash, я перехватывала эти результаты для дальнейшей обработки, со своим комментариемBash1 2 3 4 5 for /f %%i in ('MyApp Форма125 base.dat') do (      set pos = %%i      echo Запись есть в %pos%      /* дальнейшие действия с переменной pos для передачи в другое приложение )В результате я получала: Запись есть в Раздел 2 Запись есть в Раздел 4 Запись есть в Раздел 5 Подраздел 1 и так далее. Сейчас пытаюсь реализовать подобное на VB.net, но результаты плачевныеvb.net1 2 3 4 5 Dim pos As String         Do             pos = RunExe("MyApp", "Форма125 base.dat")             RichTextBox2.AppendText("Найдено в  " & pos)         Loop Until pos <> ""В результате получается: Найдено в Раздел 2 Раздел 4 Раздел 5 Подраздел 1 и так далее, то есть я захватываю только Раздел 2 и всё, остальные результаты просто выводятся на экран и соответственно в переменной pos остается первая найденная запись "Раздел 2". Решив, что цикл выбран не верно пробую другойvb.net1 2 3 4 5 6 Dim pos As String         For Each pos In RunExe("MyApp", "Форма125 base.dat")             If pos <> Nothing Then                                 RichTextBox2.AppendText("Найдено в " & pos)             End If         NextИ тут вообше ужас В результате Найдено в Р Найдено в а Найдено в з Найдено в д Найдено в е Найдено в л Найдено в Найдено в 2 Найдено в Р Найдено в а ,,,,, И так далее. Но при этом выводится, что найдено во всех разделах и подразделах но в переменной pos не полная строка, а только буквы этой строки. Фунуцмя RunExe(), для работы с внешними приложениями используется из этой темы Помогите пожалуйста как правильно оформить цикл. Спасибо.

  1. Есть код теста в оконном приложении VBvb.net1 2 3 4 5 6 7  Private Sub file()         If RadioButton1.Checked = True Then             Quest.AddRange(IO.File.ReadAllText(Application.StartupPath & "\2.txt", System.Text.Encoding.Default).Split(Spl, StringSplitOptions.RemoveEmptyEntries))         Else             Quest.AddRange(IO.File.ReadAllText(Application.StartupPath & "\1.txt", System.Text.Encoding.Default).Split(Spl, StringSplitOptions.RemoveEmptyEntries))         End If     End SubПрошу помощи с разбором синтаксиса строк AddRange (как я понимаю, это работа с текстом в файле), а именно что это, что такое IO,File,ReadAllText и прочее. Прошу не ругаться за незнание.