Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1896 | Besucher online: 49
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Zufallszahl erzeugen (mit Prüfung)


Autor: Steffen Stamprath
Sprache: VB.NET
Bewertung:
1.62 (3 votes)
Anzahl der Aufrufe: 19016
  
Kick it on dotnet-kicks.de  

Beschreibung:

Eine Zufallszahl erzeugen, wo man den Minimal-Wert und den Maximal-Wert angibt. Diese Funktion prüft auch, ob das Ergebnis zwischen den angegebenen Werten liegt.

Abgelegt unter: Random, Zufall.



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function GetRandom(ByVal minimum As Integer, ByVal maximum As Integer) As Integer
        Try
            Dim nRandom As Integer

            Randomize()
            nRandom = CInt(minimum + (maximum - minimum + 1) * Rnd())

            While nRandom < minimum OrElse nRandom > maximum
                Randomize()
                nRandom = CInt(minimum + (maximum - minimum + 1) * Rnd())
            End While

            Return nRandom
        Catch ex As Exception
            'ToDo Fehlerbehandlung
            Return minimum
        End Try

    End Function
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Thomas G, Liesner schrieb am:  27.11.2007 19:12:09

Entweder die Formel stimmt - dann ist die While-Schleife Unsinn - oder nicht, dann sollte sie korrigiert werden. Randomize initialisiert anhand der aktuellen Uhrzeit und sollte genau einmal im Programm aufgerufen werden, aber garantiert nicht vor jeder Rnd-Verwendung. Und die Exceptionbehandlung ist ein Witz - wenn bei Rnd und Randomize ein Laufzeitfehler auftritt, sollte das vom Restprogramm schon bemerkt werden und wenn die Variablentypen zu klein sind, dann ist eine Meldung genauso angebracht. Aber heimlich den Minimalwert zurückzuliefern, ist die denkbar schlechteste Möglichkeit. Eine Reduktion des Codes auf die Zeile
CInt(minimum + (maximum - minimum + 1) * Rnd()
wäre noch die sinnvollste Verwendung, wobei ich jetzt nicht auf +/-1-Fehler geprüft habe.
Tim Hartwig schrieb am:  28.11.2007 22:01:58

Mensch Steffen erst so ein super Snippet dann sowas xD
Thilo Weihsbach schrieb am:  30.09.2011 16:39:46

Hi,

bei mir wird bei dieser Funktion immer nur der minimum Wert ausgegeben. Wie kommt das?


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.