Visualizzazione dei risultati da 1 a 5 su 5

Discussione: c# convalida dati :)

  1. #1

    c# convalida dati :)

    ciao a tutti amici del forum.
    Innanzitutto spero di non aver sbagliato sezione in quanto sono un novellino e anche la presentazione perché non ho trovato la sezione giusta comunque veniamo a ciò di cui ho bisogno.
    Sto facendo c# a scuola e sono ancora alle prime armi e quando devo fare la convalida dati tipo che il programma deve accettare solo una determinata parola e quindi non deve accettare numeri o altre parole sono costretto a usare due bool il che rende più lungo il codice e basta .
    Volevo chiedervi se c'era un qualche modo per evitare ciò ed abbreviare il lavoro tipo una funzione che accetti solo determinate parole e all' inserire cose sbagliate dica di inserire indati giusti.

    Ciao a tutti confido nel vostro aiuto
    Cristian

  2. #2
    Forse è meglio se mostri il codice che hai già scritto, così capiamo come è più comodo intervenire.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    ho inserito il pezzo di codice dove mi si presenta il problema,che è appunto quando mi chiede vuoi lanciare un dado o una moneta e io devo rispondere o dado o moneta se inserisco qualcos'altro devo fare in modo che mi dica devi scrivere o dado o meneta e poi ricominci il ciclo dalla domanda

    do
    {


    Console.WriteLine("vuoi lanciare un dado o una moneta ?");
    risposta = Console.ReadLine();
    if (risposta == "moneta" || risposta == "Moneta" || risposta == "MONETA" || risposta == "M" || risposta == "m")
    lancialamoneta = true;
    else
    lancialamoneta = false;
    if (risposta == "dado" || risposta == "DADO" || risposta == "Dado" || risposta == "dd")
    lancidado = true;
    Cristian

  4. #4
    codice:
    string risposta;
    bool lanciaMoneta;
    do
    {
        Console.WriteLine("Vuoi lanciare un dado o una moneta?");
        switch(Console.ReadLine().ToLower())
        {
            case "moneta":
            case "m":
               lanciaMoneta=true;
               break;
            case "dado":
            case "d":
               lanciaMoneta=false;
               break;
            default:
               Console.WriteLine("Scelta non valida.");
               continue;
        }
    } while(false)
    Volendo si può generalizzare:
    codice:
    int MultipleChoice(params string[] scelte)
    {
        string risposta=Console.ReadLine().ToLower();
        int ret=-1;
        while(ret==-1)
        {
            for(int i=0; i<scelte.GetLength(); i++)
                scelte[i]=scelte[i].ToLower();
                if(risposta==scelte[i] || scelte[1].StartsWith(risposta.Substring(0, 1))
                    return i;
            Console.WriteLine("Scelta non valida.");
        }
    }
    
    ...
    
    Console.WriteLine("Vuoi lanciare un dado o una moneta?");
    int scelta = MultipleChoice("dado", "moneta");
    if(scelta==0)
        // è stato scelto il dato
    else
        // è stata scelta la moneta
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Di solito in questi casi io preferisco vincolare un po' di più l'utente in modo che sappia esattamente cosa digitare e non possa sbagliare. Ho buttato giu questo:

    codice:
            enum Scelta { Nessuna, Moneta, Dado };
            
            static void Main(string[] args)
            {
                Scelta scelta = Scelta.Nessuna;
                Console.Write("Premi D per lanciare un dado, M per una moneta: ");
                while (scelta == Scelta.Nessuna)
                {
                    ConsoleKeyInfo k = Console.ReadKey(true);
                    if (k.Key == ConsoleKey.D) scelta = Scelta.Dado;
                    if (k.Key == ConsoleKey.M) scelta = Scelta.Moneta;
                }
                Console.WriteLine(scelta.ToString());
                Console.ReadLine();
            }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.