Erreur else without if java

Fermé
anoukville
Messages postés
8
Date d'inscription
dimanche 20 mars 2016
Statut
Membre
Dernière intervention
23 février 2017
- Modifié par KX le 20/03/2016 à 19:32
KX
Messages postés
16583
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 août 2022
- 20 mars 2016 à 20:38
Bonjour,
je recontre une difficulté sur Java avec les conditions if else. je suis débutante et mon problème concerne un exercice d'application un peu "bateau". J'ai beau tout essayer je n'y arrive pas ... voila mon code:

public class Exercice3 {
  public static void main(String[] args){
    int mult;
    System.out.print("entrez le nombre à multiplier: ");
    mult=MOOC.readInt();
    if(mult<=1){
      for(mult=1;mult<=9;++mult);
        System.out.println("1 x "+mult+" = "+1*mult);
    }else if (mult<=2){
      for(mult=1;mult<=9;++mult){
        System.out.println("2 x "+mult+" = "+2*mult);
    }else if (mult<=3){
      for(mult=1;mult<=9;++mult){
        System.out.println("3 x "+mult+" = "+3*mult);
 }
}
 }
}
}


l'erreur s'affiche sur le dernier
 }else if{


merci d'avance
A voir également:

2 réponses

KX
Messages postés
16583
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 août 2022
2 972
20 mars 2016 à 19:42
Bonjour,

Tu as pas mal d'erreurs sur tes boucles for.

Ligne 7 : tu as un point virgule à la fin de la ligne, ça court-circuite les instructions qui suivent.
Ligne 10 : tu ouvres une accolade, mais tu ne la fermes pas (d'où l'erreur avec le else ensuite)

Voici la bonne structure :
if (mult <= 1) {
    for (mult = 1; mult <= 9; ++mult) {
        System.out.println("1 x " + mult + " = " + 1 * mult);
    }
} else if (mult <= 2) {
    for (mult = 1; mult <= 9; ++mult) {
        System.out.println("2 x " + mult + " = " + 2 * mult);
    }
} else if (mult <= 3) {
    for (mult = 1; mult <= 9; ++mult) {
        System.out.println("3 x " + mult + " = " + 3 * mult);
    }
}

Remarque : c'est une mauvaise idée de réutiliser la variable mult dans la boucle car du coup tu effaces la valeur qu'elle avait ligne 5.
0
Merci mille fois ça fait vraiment plusieurs heures que je suis là dessus, j'ai essayé plusieurs combinaisons pour placer mes accolades et rien y faisait(je savais que le problème était la dessus)! bon la fatigue à force de s'acharner devait y être pour quelque chose ! merci en tout cas, j'ai compris l'erreur c'est le principal.

pour ta remarque sur l'utilisation de la variable multi dans la boucle, j'ai suivi les exemple que j'avais eu dans le cours donc je ne saurais pas trop comment faire d'autre, qu'est ce que tu suggérais ?

J'ai une question en revanche, à quoi servent les + autour de mult?? j'ai trouvé ça sur internet et j'ai vu que cela marchait mais je ne comprend pas trop la logique.

merci!
0
KX
Messages postés
16583
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 août 2022
2 972
20 mars 2016 à 20:38
l'utilisation de la variable multi dans la boucle
Ce que je veux dire c'est que sémantiquement il te faudrait deux variables, une pour le multiplicande l'autre pour le multiplicateur (ce qui te permettrait d'ailleurs de supprimer tout les if pour ne garder qu'une seule boucle for...)

à quoi servent les + autour de mult
Lorsque tu fais un affichage, ce que tu manipules c'est un objet String, l'utilisation de l'opérateur + permet de faire la concaténation de deux String.
"1"+"2" → "12"
0
NHenry
Messages postés
14961
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 août 2022
324
20 mars 2016 à 19:45
for(mult=1;mult<=9;++mult){
Quand tu ouvres une accolade, tout les reste est dedans jusqu'à sa copine fermante.
0