Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato L'avatar di Nilox
    Registrato dal
    Jul 2010
    Messaggi
    35

    [C#]Switch e goto

    Buona vigilia a tutti quanti voi, vi scrivo perché mi servirebbe una manco con un costrutto switch che mi crea qualche problema, l'errore è il seguente: Error CS0163: Control cannot fall through from one case label to another (CS0163), stò usando Mono quindi sono sul framework 3.5 nel caso l'info fosse utile per risolvere il problema.
    Il codice in questione è il seguente:
    codice:
    public Boolean Conteggio()
    		{
    			foreach ( string z in ListaDir )
    			{
    				foreach ( string y in Directory.GetDirectories(z) )
    				{
    					int n = 3;
    					if ( continua == true )
    					{
    						n = 0;
    						switch (n) <--è qui che va in errore!
    						{
    							case 0:
    								ListaDir.Add(y + "/");
    								if (( y != null ) && ( y != "" ))
    								{
    									continua = true;
    									goto case 0;
    								}
    								else
    								{
    									continua = false;
    								}
    							case 1:
    								break;
    						}
    					}
    				}
    			}
    			return continua;
    		}
    spero possiate darmi un suggerimento per risolvere

    P.S.
    Buon Natale a tutti ovviamente

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Devo ancora capire a cosa serve quel:

    codice:
    goto case 0;
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Buona vigilia,

    prova ad aggiungere un break nel case 0
    I got the remedy

  4. #4
    Utente bannato L'avatar di Nilox
    Registrato dal
    Jul 2010
    Messaggi
    35
    il goto al case 0 mi serve perché devo rieseguire quell'istruzione per parecchie volte(in pratic devo leggere tutte le directory partendo da una root e poi leggere nelle directory figlie e così via fino a che non ne esistono più) comunque ora provo anche con il break o meglio domani ci provo oggi devo concentrarmi per prendere 5-6 kg
    Buon Natale ragazzi!

  5. #5
    Utente bannato L'avatar di Nilox
    Registrato dal
    Jul 2010
    Messaggi
    35
    allora buona sera a tutti il mio problema l'ho risolto quindi posto il codice magari può tornare utile a qualcuno

    Il codice parte da una directory root e tira fuori tutte le directory e sotto directory fino a che non ne esistono più
    codice:
    using System;
    
    using System.Collections;
    
    using System.Collections.Generic;
    
    using System.IO;
    
    using System.Text;
    
    
    
    namespace ListaDir
    
    {
    
        class Program
    
        {
    
            static void Main(string[] args)
    
            {
    
                ArrayList Lista = new ArrayList();
    
                ArrayList ListaTotale = new ArrayList();
    
                string root = "/home/dekster";
    
                ListaTotale.Add(root);
    
                foreach (string i in Directory.GetDirectories(root))
    
                {
    
                    Lista.Add(i + "/");
    
                    ListaTotale.Add(i + "/");
    
                }
    
                UInt32 contatoreparziale = 0;
    
                contatoreparziale = Convert.ToUInt32(Lista.Count);
    
                if (contatoreparziale > 0)
    
                {
    
                    UInt16 n = 1;
    
                    switch (n)
    
                    {
    
                        case 1:
    
                            foreach (string d in Lista)
    
                            {
    
                                foreach (string f in Directory.GetDirectories(d))
    
                                {
    
                                    Lista.Add(f + "/");
    
                                    ListaTotale.Add(f + "/");
    
                                }
    
                                Lista.RemoveAt(0);
    
                                if (Lista.Count == 0)
    
                                {
    
                                    break;
    
                                }
    
                                goto case 2;
    
                            }
    
                            break;
    
                        case 2:
    
                            foreach (string b in Lista)
    
                            {
    
                                foreach (string r in Directory.GetDirectories(b))
    
                                {
    
                                    Lista.Add(r + "/");
    
                                    ListaTotale.Add(r + "/");
    
                                }
    
                                Lista.RemoveAt(0);
    
                                if (Lista.Count == 0)
    
                                {
    
                                    break;
    
                                }
    
                                goto case 1;
    
                            }
    
                            break;
    
                    }
    
                    foreach (string q in ListaTotale)
    
                    {
    
                        Console.WriteLine(q);
    
                    }
    
                    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.