困惑的如何在两个数字之间找到偶数?VB.NET

困惑的如何在两个数字之间找到偶数?VB.NET,vb.net,events,module,numbers,Vb.net,Events,Module,Numbers,如何找到6到16之间的偶数 问题是我正在处理一些事件。我该怎么做?我做了很多研究,发现了一些可能有效的代码,但我不确定它是如何工作的。(我对vb.net一点也不精通——我只是想完成这门课程。) 我发现我必须使用MOD?我甚至不知道如何在活动中使用它?任何代码都能让我顺利完成这项任务 我从一个需要寻找偶数的程序中提取了这段代码,它工作得很好,但唯一的缺点是它从1开始,然后从你希望它停在的任何数字开始。我只需要6到16 Imports System Imports System.Collection

如何找到6到16之间的偶数

问题是我正在处理一些事件。我该怎么做?我做了很多研究,发现了一些可能有效的代码,但我不确定它是如何工作的。(我对vb.net一点也不精通——我只是想完成这门课程。)

我发现我必须使用MOD?我甚至不知道如何在活动中使用它?任何代码都能让我顺利完成这项任务

我从一个需要寻找偶数的程序中提取了这段代码,它工作得很好,但唯一的缺点是它从1开始,然后从你希望它停在的任何数字开始。我只需要6到16

Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Diagnostics

Module Module1
    Private Delegate Sub numManip()

    Sub Main()
        Dim evennumber As numManip
        Dim allNumbers As [Delegate]
        evennumber = New numManip(AddressOf Even)
        allNumbers = [Delegate].Combine(evennumber)
        allNumbers.DynamicInvoke()
    End Sub

    Sub Even()
        Console.Clear()
        Dim counter As Integer = 2
        Console.WriteLine("Even Numbers")
        Console.WriteLine("Please Enter the Number you Wish to End at: ")
        Dim number As Integer = Console.ReadLine()
        Console.Clear()
        Console.WriteLine("All Even Numbers From 6 to " & number)
        Do Until counter > number
            Console.WriteLine(counter)
            counter += 2
        Loop
        Console.WriteLine("Press Enter to Continue...")
        Console.ReadLine()
    End Sub

    Public Enum Numbers
        Unset
        Prime
        Composite
    End Enum
End Module

在不深入作业的其他部分的情况下,您可以使用'Mod 2'检查偶数

If (myNum Mod 2) = 0 Then
 'It's even!
Else 
 'It's not!
End If
对于事件的一部分:我不想给你剪切和粘贴代码,但是考虑一下这个想法:你的主要子迭代通过6…16号。在每个数字上,都会引发自定义事件。如果事件为偶数,则在事件内部输出到控制台

  Class NumEventArgs
      Inherits EventArgs
      Public Property Num() As String

      Public Sub New(num As Integer)
         Me.Num = num
      End Sub
   End Class
   Public Event NumCheckEvent(sender As Object, e As NumEventArgs)
   Sub Main()
      AddHandler NumCheckEvent, AddressOf NumCheckEventHandler
      For i = 6 To 16 Step 2
         RaiseEvent NumCheckEvent(Nothing, New NumEventArgs(i))
      Next
   End Sub
   Sub NumCheckEventHandler(sender As Object, e As NumEventArgs)
      If e.Num Mod 2 = 0 Then
         Console.WriteLine("Even!")
      End If
   End Sub

这段代码对您非常有用。。你只需要稍微改变一下逻辑。此代码从2开始,因为计数器是2。当然,您可以使用与输入最后一个数字相同的逻辑(如果您可以输入最后一个数字,您当然可以输入第一个;)将该数字更改为从您想要的任何位置开始

另一件你必须改变的事情,是使用来得到除法的剩余部分,因为当你从一个加法开始时,你会遇到一个问题,你总是假设你的第一个数是偶数

无论如何。。如果你想从6点开始,只要换一行就行了

Dim counter As Integer = 2

如果你总是想在16岁时结束,那就改变这个

Console.WriteLine("Even Numbers")
Console.WriteLine("Please Enter the Number you Wish to End at: ")
Dim number As Integer = Console.ReadLine()
Console.Clear()
为此:

Dim number As Integer = 16

你为什么说你在使用事件?首先,您展示的代码中没有一个使用事件,但是即使您计算数字的代码在事件处理程序中,它也不会改变任何东西。但是,如果您的代码需要在每次找到偶数时引发事件,或者在完成时引发事件,则会稍微改变一些情况

Main
方法中所做的一切都是毫无意义的。它只需调用
Even
方法,您可以这样做:

Sub Main()
    Even()
End Sub
Sub Main()
    Dim evenDelegate As numManip = New numManip(AddressOf Even)
    evenDelegate.Invoke()
End Sub
即使您出于某种原因需要使用委托,但似乎没有任何理由这样做,您所要做的就是这样:

Sub Main()
    Even()
End Sub
Sub Main()
    Dim evenDelegate As numManip = New numManip(AddressOf Even)
    evenDelegate.Invoke()
End Sub
在您的
偶数
方法中,我将使用For循环,而不是Do循环。如果您找到第一个偶数,您可以按2步,例如

For i As Integer = evenStartingNumber To endingNumber Step 2
Next
否则,您需要循环遍历每个数字(步进1),然后测试每个数字,看看它是偶数还是奇数。例如:

For i As Integer = startingNumber To endingNumber
   If IsEven(i) Then
   End If
Next

要确定一个数字是偶数还是奇数,需要使用
Mod
操作符
Mod
返回除法运算的余数(剩余分数)。例如,10除以4等于2,余数为2。当你将任何偶数除以2时,余数总是零,因此如果
x Mod 2=0
,那么x是偶数。

伙计们,我在一个不同的项目中使用了代表,我只是使用了它,因为我认为它会起作用。所有这些帮助都很有帮助。谢谢伙计们,这是很棒的帮助!!我感谢你抽出时间来帮助我!我有一个关于活动部分的问题,你认为我可以像点击按钮一样把这些信息放进去吗?因为事件是一个按钮点击右键?按钮点击通常由事件处理。您可以连接upevents(使用或不使用Windows窗体),如我的示例的第二部分所示。我要提醒的是,尝试将点击等同于事件;活动是一个更宽泛的概念。我感谢你给我的所有帮助,并抽出你一天的时间!