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. ah oui c'est le langage java que j'utilise :)
    0
    1. Modérateur
      Pourquoi tester la valeur i avec des if ? Tu n'as besoin que de la boucle for ici.
      0
      1. 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
      2. 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
      3. 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