Boucle for

Résolu/Fermé
geekette - 10 nov. 2013 à 14:27
JoshNic Messages postés 1 Date d'inscription mardi 12 novembre 2013 Statut Membre Dernière intervention 12 novembre 2013 - 12 nov. 2013 à 14:13
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 :)
A voir également:

5 réponses

ah oui c'est le langage java que j'utilise :)
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
10 nov. 2013 à 14:29
Pourquoi tester la valeur i avec des if ? Tu n'as besoin que de la boucle for ici.
0
comment dois-je faire dans ce cas?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
10 nov. 2013 à 14:33
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
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
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
10 nov. 2013 à 14:43
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
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
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
10 nov. 2013 à 15:01
Parce qu'il faut déclarer toutes les variables que tu utilises, tu l'as déjà fais pour
a
dans ton
main
.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JoshNic Messages postés 1 Date d'inscription mardi 12 novembre 2013 Statut Membre Dernière intervention 12 novembre 2013
Modifié par JoshNic le 12/11/2013 à 14:16
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