Boucle for

Résolu
geekette -  
JoshNic Messages postés 3 Statut Membre -
Bonjour je suis une jeune étudiante en informatique et je veux reproduire l'affichage suivant :

java Moutons
Combien de moutons ? 3
1 moutons
2 moutons
3 moutons

le soucis c'est que je n'y arrive pas très bien, pouvez vous me dire pourquoi mon code ne marche pas s'il vous plaît?

import java.util.Scanner;

class Ex1{

public static int moutons(int i){
if(i==1)
System.out.println(i+"moutons");
return i;
else if(i==2)
for(i=2; i<=2; i++)
System.out.println(i+" moutons");
else
for(i=3; i<=3; i++)
System.out.println(i+"moutons");
return i;

}

public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a;
System.out.println("Combien de mouton?");
a=sc.nextInt();
System.out.println(moutons(a));
}
}

merci de m'avoir lu :)

5 réponses

  1. geekette
     
    ah oui c'est le langage java que j'utilise :)
    0
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    Pourquoi tester la valeur i avec des if ? Tu n'as besoin que de la boucle for ici.
    0
  3. geekette
     
    comment dois-je faire dans ce cas?
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Regardes comment fonctionne la boucle for :
      https://www.commentcamarche.net/contents/552-java-les-structures-conditionelles

      Et utilises la sans les tests if qui ne servent à rien ici.
      0
  4. geekette
     
    merci, de base mon code était sans les if et j'obtenais cela :

    import java.util.Scanner;

    class Ex1{

    public static int moutons(int i){
    for(i=1; i<=3; i++)
    System.out.println(i+" moutons");
    return i;

    }

    public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int a;
    System.out.println("Combien de mouton?");
    a=sc.nextInt();
    System.out.println(moutons(a));
    }
    }

    le soucis est que quand peut importe le nombre de moutons que je rentre, il me donnera toujours 3 est-ce normal,? (même quand je tape 2 moutons)
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      C'est parce que quand tu commences ta boucles la première chose que tu fais c'est
      i=1
      qui efface la valeur que tu as entré au clavier. Puis tu lui imposes de continuer tant que
      i<=3
      donc il fera toujours 1, 2, 3.

      Il faut que tu arrives à te servir de la valeur
      a
      que tu lis au clavier, pour l'instant elle n'est jamais prise en compte.
      0
    2. geekette
       
      Merci KX de prendre le temps de me répondre :)

      et comment du coup il faut que je fasse pour me servir de la valeur a. Parce que si dans la boucle for je ne met pas i=... le programme ne se compile pas
      0
    3. KX Messages postés 19031 Statut Modérateur 3 020
       
      Parce qu'il faut déclarer toutes les variables que tu utilises, tu l'as déjà fais pour
      a
      dans ton
      main
      .
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JoshNic Messages postés 3 Statut Membre
     
    Une autre manière simple

    import java.util.*;

    public class Ex1{

    public void executer(){

    System.ou.print("Combien de mouton :");
    int mouton=new Scanner(System.in).nextInt();

    for(int i=1;i<mouton;i++){
    System.out.println(i+" Moutons");}

    }
    }

    public static void main (String[] args){

    Ex1 exe=new Ex1();
    exe.executer();

    }
    0