如何找到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
答案 0 :(得分:1)
如果没有潜入作业的其他部分,请使用“Mod 2”
检查偶数If (myNum Mod 2) = 0 Then
'It's even!
Else
'It's not!
End If
对于Events的部分内容:我不想给你剪切和粘贴的代码,但考虑一下这个想法:你的主要子迭代数字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
答案 1 :(得分:1)
这段代码对你很有用..你只需稍微改变一下逻辑。此代码从2开始,因为计数器为2.当然,您可以使用与输入最后一个数字相同的逻辑将该数字改为以您想要的任何一个开始(如果您可以输入最后一个,您当然可以输入第一个; ))。
你需要改变的另一件事是使用mod operator来获得除法的剩余部分,因为当你从一个加号开始时,你会遇到问题,你总是假设你的第一个号码是甚至...
无论如何..如果你想从6开始,只需改变这一行
Dim counter As Integer = 2
到
Dim counter As Integer = 6
如果你总想在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
答案 2 :(得分:1)
为什么你说你正在使用活动?首先,您展示的代码都不使用事件,但即使您计算数字的代码在事件处理程序中,也不会改变任何内容。但是,如果您的代码需要在每次找到偶数时引发事件,或者在事件完成时引发事件,那么这会改变一些事情。
您在Main
方法中所做的一切都毫无意义。所有它完成的是调用Even
方法,你可以非常简单地这样做:
Sub Main()
Even()
End Sub
即使您出于某种原因需要使用代理,但似乎没有任何理由,您需要做的就是这样:
Sub Main()
Dim evenDelegate As numManip = New numManip(AddressOf Even)
evenDelegate.Invoke()
End Sub
在Even
方法中,我会使用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是偶数。