IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

i is unreachable?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2021
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 77
    Par défaut i is unreachable?
    Bonjour

    Dans cette méthode qui passe le paramètre 'num', j'ai l'erreur 'i is unreachable'. Pourquoi? Dans la seconde méthode, il n'y a pas d'erreur.
    Merci.
    R.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i = 2; i < num; i++)
                if (num % i == 0)
                    return false;
                else
                    return true;
    return true;
    erreur: i unreachable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i = 2; i < num; i++)
                if (num % i == 0)
                    return false;
    return true;
    Ici, pas d'erreur.

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonjour,

    C'est normal car dès le premier passage de la boucle, dans tous les cas, il sera retourné une valeur et donc la boucle sera terminée au premier tour, l'incrémentation étant court-circuité. Ce qui n'est pas le cas dans ton deuxième exemple.

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2021
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 77
    Par défaut
    Ok, merci, mais alors, pourquoi ceci ne rend-t-il pas "inpair", vu que 1%2 n'est pas = 0? Il dit
    not all path return a value
    Merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    using System;
    class Dem
    {
        static void Main()
        {
            Console.WriteLine(test());
        }
     
        static string test()
        {
            for (int i = 1; i< 10; i++)
            {
                if (i % 2 == 0)
                    return "pair";
                else
                    return "inpair";
            }
        }
    }

  4. #4
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonsoir,

    C'est strictement le même problème encore, en plus d'un souci de retour de valeur final.

    Je pense qu'il y a un petit problème de compréhension au niveau des boucles et/ou du mot-clé return.

    return termine complètement la méthode et sort de la boucle. C'est le point final d'une fonction qui retourne une valeur.

    En fait il faudrait que tu sortes la boucle directement comme ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        static void Main()
        {
            for (int i = 1; i < 10; i++)
            {
                Console.WriteLine(test(i));
            }
        }
     
        static string test(int number)
        {
            if (number % 2 == 0)
                return "pair";
            else
                return "inpair";
        }

    Ou alors si tu veux que test() soit aussi responsable de l'affichage


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        static void Main()
        {
            test();
        }
     
        static void test()
        {
            for (int i = 1; i < 10; i++)
            {
                if (i % 2 == 0)
                    Console.WriteLine("pair");
                else
                    Console.WriteLine("inpair");
            }
        }
    Tu pourrais aussi partir sur un autre système du genre la fonction qui te renvoie le résultat de chaque nombre, etc ...

    Mais c'est à toi de préciser.

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2021
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 77
    Par défaut
    Merci bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/05/2011, 19h07
  2. unreachable code erreur
    Par nadsky dans le forum Général Java
    Réponses: 5
    Dernier message: 28/05/2008, 16h05
  3. Erreur "Unreachable code"
    Par DebuDev dans le forum Général Java
    Réponses: 1
    Dernier message: 23/02/2008, 03h33
  4. Réponses: 3
    Dernier message: 25/10/2007, 18h45
  5. [Réseau]unreachable statement
    Par virtuadrack dans le forum Général Java
    Réponses: 3
    Dernier message: 15/02/2005, 22h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo