Boucle for

Résolu
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. 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
    1. 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. Modérateur
        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. 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. Modérateur
        Parce qu'il faut déclarer toutes les variables que tu utilises, tu l'as déjà fais pour
        a
        dans ton
        main
        .
        0
    2. comment dois-je faire dans ce cas?
      0
      1. Modérateur
        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
    3. Modérateur
      Pourquoi tester la valeur i avec des if ? Tu n'as besoin que de la boucle for ici.
      0
      1. ah oui c'est le langage java que j'utilise :)
        0