Commencer à programmer

Comme tout langage de programmation JAVA permet d'utiliser des variables et des structures de contrôle comme si...alors....sinon... Nous allons commencer à explorer ces possibilités en écrivant quelques programmes fonctionnant en mode console.

Variables

Lorsqu'on utilise une variable, on doit commencer par la déclarer en indiquant son type. Voici quelques types utilisables :

La déclaration se fait en indiquant le type suivi du nom de la variable. Par exemple :

	int n;
	double d;
	String S;

Les variables doivent être initialisées, il faut leur attribuer une valeur. Cela se fait avec le symbole =.

	n=123;
	d=24.5;
	S="Bonjour";

On peut regrouper déclaration et initialisation en une seule instruction.

	int n=123;
	double d=24.5;
	String S="Bonjour";

Si...alors...sinon...

La structure de l'instruction si...alors...sinon... est :
if (condition) {bloc 1} else {bloc 2}
La condition est écrite entre deux parenthèses, le bloc 1 est exécuté si la condition est vérifiée, le bloc 2 est exécuté dans le cas contraire.
La partie "else {bloc 2}" est facultative.
Un bloc est une suite d'instructions entre deux accolades. S'il n'y a qu'une seule instruction à exécuter les accolades sont facultatives.

Une condition est souvent le résultat de la comparaison d'une variable avec une valeur donnée. On utilise les symboles suivants :
  == pour l'égalité
  != pour la non-égalité
  < pour strictement inférieur
  > pour strictement supérieur
  <= pour inférieur ou égal
  >= pour supérieur ou égal

On peut combiner plusieurs conditions avec deux instructions logiques :
  - ou : symbole ||
  - et : symbole &&

On obtient le contraire d'une condition en la faisant précéder du symbole !

Premier exemple

Mettons les notions vues en application avec un petit programme qui compare deux nombres entiers.

	public class Compare1 {
	 public static void main(String args[]) { 
	  int a = 10; 
	  int b = 12; 
	  System.out.println("L'entier A vaut "+a+"."); 
	  System.out.println("L'entier B vaut "+b+"."); 
	  if (a<b) 
	   System.out.println("A est plus petit que B."); 
	  else if (a == b) 
	   System.out.println("A est egal à B."); 
	  else System.out.println("A est plus grand que B."); 
	 }
	}

On peut remarquer une possibilité bizarre pour ceux qui ont déjà programmer avec d'autres langages : il est possible d'ajouter des chaînes de caractères avec des variables numériques, le compilateur java remplace alors automatiquement les variables numériques par leur traduction en chaînes de caractères.

Sauvez le fichier sous le nom Compare1.java, compilez et exécutez. Le programme doit écrire "A est plus petit que B." car a=10 et b=12.
Vous pouvez modifier les valeurs initiales de a et b, puis recompiler et exécuter pour vérifier que java donne bien à chaque fois la réponse logiquement attendue.

Arguments de la ligne de commande

Le programme Compare1 a l'inconvénient de traiter deux nombres fixés une fois pour toute. Nous allons voir comment attribuer une valeur à ces nombres en utilisant la ligne de commande.

Retour sur la méthode main

La méthode main est déclarée par
  public static void main(String args[])
Le paramètre args passé à cette méthode est un tableau de chaînes de caractères qui contient les paramètres passés à l'application java sur la ligne de commande.
On a accès à ces paramètres en écrivant args[0], args[1], etc... Attention, le premier paramètre a le numéro 0.
Le nombre de paramètres est fourni par args.length.

Conversion String vers int

Les paramètres passés sur la ligne de commande sont des chaînes de caractères. Pour les utiliser dans notre programme de comparaison, il est nécessaire de les transformer en variables de type int. Cela peut se faire grâce à la méthode parseInt de la classe Integer.

Le code

	int n=Integer.parseInt(S);

permet de convertir la chaîne S en un entier n. Bien sûr, cela suppose que la chaîne S représente bien un entier; nous verrons plus tard comment gérer d'éventuelles erreurs.

Le programme Compare2

Nous savons maintenant suffisamment de choses pour écrire le programme Compare2 qui comparera deux entiers passés en paramètres sur la ligne de commande. Il suffit de remplacer les deux lignes qui déclarent et initialisent les variables a et b par :

	int a = Integer.parseInt(args[0]); 
	int b = Integer.parseInt(args[1]); 

Exécution du programme

Après avoir compilé le programme Compare2 on peut l'exécuter avec une ligne de commande du type :
  java Compare2 37 10
Les paramètres passés au programme sont, dans l'exemple, les chaînes "37" et "10". Elles sont converties en nombres 37 et 10 qui sont ensuite comparés.

Si vous utilisez RealJ, vous pourrez passer des paramètres à vos programmes en activant l'option "Ask for input before running Applications" dans la boîte de dialogue qui s'affiche lorsqu'on active le menu File/Preferences.



Retour au menu