Différence entre expressions et instructions
Saperlipopiette
Messages postés
15
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Voilà tout est dans le titre. En JAVA quelle est la différence entre instructions et expressions?
Merci.
--
Mon fils, au jour de ta naissance, même les forêts de Lordaeron ont murmuré ton nom...Arthas (...). Je te confie cela car lorsque ma vie s'achèvera, toi tu sera roi
Voilà tout est dans le titre. En JAVA quelle est la différence entre instructions et expressions?
Merci.
--
Mon fils, au jour de ta naissance, même les forêts de Lordaeron ont murmuré ton nom...Arthas (...). Je te confie cela car lorsque ma vie s'achèvera, toi tu sera roi
3 réponses
-
Les instructions ce sont les opérations que tu fais dans ton code, les déclarations initialisations, et affectations, l'appel d'une méthodes etc... sont des instructions.
Mais je ne suis pas sûr que "expression" soit vraiment un terme informatique, on parle plutôt d'"expression mathématique", d'"expression régulière" etc... mais expression tout seul je ne sais pas ce que tu mets derrière ce mot.-
merci KX. je cite cet exemple de la boucle do...while
Do
une seule instruction ;
while (expression conditionnelle) ;
En fait une chose m'est venue, je me demande si une expression (booléenne, arithmétique..) peut être à la fois expression ET instructions. Si je demande de renvoyer la valeur par exemple d'une expression comme un calcul simple 2+5 via l'écran. y a t-il 2 instructions? (affichage à l'écran ET renvoie de la valeur) ou n'y a t-il qu'une seule instruction?
Pardon c'est très con. -
C'est pas très con, j'ai eu un petit topo la dessus au debut d'un cours de C++, mais j'imagine que ca s'applique au JAVA.
D'apres ce que j'en ai retenu une expression RENVOIE une valeur(dans le sens "est évaluée")2+5 1<2 false
sont des expressions.
Les expressions peuvent éventuellement avoir un effet de bord, par exemplei++ x=5 // dans le cas du C++ c'est vrai car = stock la valeur 5 dans x mais renvoie aussi la valeur 5, pour java je suis moins sur mais l'idée est toujours que ca renvoie une valeur
Une instruction elle va demander a l'ordinateur de FAIRE quelque chosex=5; // affecte la valeur 5 à x 2+5; // calcule 2+5, meme si ton programme n'en fait rien il l'aura quand meme calculé
Dans ton exemple je dirais que tu as une seule instructionSystem.out.println(5+2);
5+2 n'est que l'expression a évaluer.
(à confirmer quand meme :) ) -
Donc ce n'est pas une expression tout court, mais une "expression conditionnelle", c'est donc bien une "expression booléenne", son évaluation doit être vraie ou fausse.
J'aurais tendance à penser comme Jip, System.out.println(5+2); ne serait qu'une seule instruction, même si au final le programme Java doit faire plusieurs opérations : calculer 5+2, charger la classe System, récupérer la variable System.out, lui appliquer la méthode println avec le paramètre 7.
Remarque : la méthode println est également composé de plusieurs instructions mais on ne les compte pas et pourtant elles existent, donc la définition de Jip me convient plutôt bien, "une instruction va demander a l'ordinateur de faire quelque chose", même si par ordinateur j'entendrai plutôt le programme Java, plus que le système hôte.
Cependant on peut effectivement combiner instructions et expressions conditionnelles, mais cela donne des exemples tout à fait différents :
String str = "abaabababbbbabab"; int n=-1; while ((n=str.indexOf('a',n+1))!=-1) System.out.println(str.substring(n)); -
Bonjour,
Une tierce opignon, [ System.out.println(5+2) ] contient 2 instructions du langage.
L'instruction [ printIn ] et l'instruction d'addition [ + ],
bien que ( 5 + 2 ) soit une expression mathématique, l'opération d'addition
est une instruction machine au même titre que l'instruction printIn.
( 5 x 2 ) est aussi une expression, mais au niveau machine elle s'effectue
par un décalage d'un seul registre vers la gauche, alors que ( 5 + 2 ) s'effectue
sur deux registre distinct. Ce concept est de niveau assembleur, mais ramené
au niveau des langages de bas et haut niveau, on considère que ces instructions sont pur,
soit [ + ] et [ x ] (addition et multiplication) sont des instructions simples (pur) pour tous
les langages de programmation que je connaisse à ce jour.
Au niveau des langages évolués, on considère une instruction comme étant
un signe mnémonique (ex.: +, *, =, ...) , ou mot réservé, faisant appel au processeur
pour une ou plusieurs opération(s), même un [ Sleep ] ( attente ) est une instruction
significative qui fait appel au processeur.
Réf.: Système à Micro-Processeur (Électrotechnique 243.03) 1983
Cdt
Lupin
-
-
Merci a vous 2 c'est bien plus clair maintenant.^^
-
Merci Lupin.
Ce qui rejoindrai mon idée que même si on désigne 2+3 en premier comme expression, il n'en est pas moins aussi une instruction à sa façon.(?)