IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

[Débutant] Instruction IF sans les "{}" (accolades)


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [Débutant] Instruction IF sans les "{}" (accolades)
    Bonjour, j'ai fais une recherche rapide sur le forum mais je n'ai rien trouver comme réponse. Alors je tente ma chance en proposant un nouveau Topic.

    J'ai récemment acheté le livre; Programmer en Java par Claude Delannoy (5ème édition Java 5 et 6). Dans cette ouvrage, les exemples de petits programmes avec l'instruction IF sont sans les fameuses accolades "{ et }".

    public class Tva
    {
    public static void main (String[] args)
    {
    final double TAUX_TVA = 21.6;
    double ht, ttc, net, tauxr, remise;
    System.out.print("Donnez le prix hors taxes : ");
    ht = Clavier.lireDouble();

    ttc = ht * ( 1. + TAUX_TVA / 100.);
    if (ttc < 1000.) tauxr = 0;
    else if (ttc < 2000.) tauxr = 1.;
    else if (ttc < 5000) tauxr = 3.;
    else tauxr = 5.;


    remise = ttc * tauxr / 100.;
    net = ttc - remise;
    System.out.println("prix ttc " + ttc);
    System.out.println("remise " + remise);
    System.out.println("net a payer " + net);
    }
    }
    Hors, je vois partout sur internet les if(){} else if () {} else {}
    Ou alors ici on peut omettre les accolades "{}" parce que le programme est simple et que ça facilite la lecture?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Les {} ne sont pas obligatoires si tu n'as qu'une seule instruction à executer dans le if.

    Et c'est le cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (ttc < 1000.) 
          tauxr = 0; // 1 instruction 
    else if (ttc < 2000.) 
          tauxr = 1.; // 1 instruction 
    else if (ttc < 5000) 
          tauxr = 3.; // 1 instruction 
    else 
         tauxr = 5.; // 1 instruction
    Par contre si tu as plusieurs instructions à executer, tu dois les mettre en {}

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (ttc < 1000.) {
          tauxr = 0; 
          tauxr2 = 1; 
    } else {
          tauxr3= 0; 
          tauxr4 = 1; 
    }

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Merci
    Merci, c'est bien ce que je pensais.
    Quelle efficacité ce forum!

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Les accolades {} (et non pas les crochets []) permettent de délimiter un bloc.

    Une ligne de code simple terminée par un ';' (instruction) est un bloc.

    Si tu veux que dans ton bloc il y ait plusieurs instructions, il te faut les accolades.

    Donc pour ton if :

    S'il y a une seule instruction dans ta conséquence (après la condition, donc) les accolades sont optionnelles, puisqu'avec ou sans, ça veut dire la même chose.

    Le choix de les écrire ou non dépend de la norme de codage que tu suis, ce qui est un autre débat.

    Par contre, si tu veux inclure plusieurs instructions dans ta conséquence, alors les accolades sont obligatoires.

    J'espère être clair.
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci Faiche, j'ai modifier mon post.
    Tu as été très claire, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/04/2014, 13h16
  2. [XML]/[DocBook] Les entités &quot; &lt; etc.
    Par ykerb2 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 08/05/2007, 20h25
  3. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  4. Les doubles quotes dans les fprintf
    Par Changedman dans le forum C
    Réponses: 30
    Dernier message: 22/02/2007, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo