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

Langage PHP Discussion :

Tester des conditions dans une boucle for [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Points : 39
    Points
    39
    Par défaut Tester des conditions dans une boucle for
    Bonjour
    Je suis débutant en php, je cherche à ecrire code pour déterminer et afficher les nombres premiers entre 1 et 100 et j'y arrive pas.Merci de m'aider.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    for($j=2;$j<100;$j++){
    for($i=2;$i<$j;$i++){
       if($j%$i!==0){
    echo '$j.',';
    }
    }
    }
    ?>

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    essaie == au lieu de !==

    Sinon le reste m'a l'air correct.

    EDIT :

    Y a aussi une apostrophe de trop dans ton echo. Faut que tu enlève la première:

  3. #3
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Je vais te donner un code écrit à la va-vite:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for($j=2;$j<100;$j++){
    for($i=2;$i<$j;$i++){
    	$fal=false;
    if(!($j%$i)){
    $fal=true;
    break;
    }
    }
    if (!$fal) echo $j.',';
    }

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Points : 39
    Points
    39
    Par défaut
    Grand merci Kabkab, j'ai testé ton code et il marche.Au fait j'en avais écris un autre( ce matin) qui marche également mais un peu long!
    Voilà le code:
    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
    20
    21
    22
    23
    24
    25
    26
    <?php
    function test($j,$i)
    {
    if($j%$i!=0){
    return $j;
    }
    else{
    return 0;
    }
    }
    $premier=2;
    echo "Les nombres premiers entre 1 et 100 sont:"."<br/>"; 
    for($j=2;$j<=100;$j++){
    for($i=2;$i<$j;$i++){
    if(test($j,$i)==0){
    $premier=0;
    break;
    }
    else{
    $premier=test($j,$i);
    }
    }
    if($premier!=0)
    echo $premier.",";
    }
    ?>

  5. #5
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Je te félicite de ton "acharnement". Mais un code qui fonctionne ne veut pas forcément dire qu'il est bon.
    Dans ton code, tu fais appel à la fonction test() juste pour tester le modulo. A 100 itérations, on ne ressent rien mais à des millions tu verras la différence entre les deux codes en termes de performance.
    Cela ne veut pas dire que le code que je t'ai présenté soit le meilleur qui soit mais il faut toujours simplifier en tenant compte de la proformance rapidité et économie de mémoire.

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

Discussions similaires

  1. [Débutant] utilisation des Textbox dans une boucle For
    Par zayoub dans le forum VB.NET
    Réponses: 31
    Dernier message: 28/07/2011, 15h55
  2. [Batch] Tester ping/share dans une boucle FOR
    Par Mocodo dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 17/03/2010, 13h39
  3. Condition dans une boucle for
    Par nicolasferraris dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/04/2009, 17h28
  4. Appliquer un next sous conditions dans une boucle for
    Par Kibald dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/01/2009, 08h56

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