TP M1207 n°1 - Partie 2 sur 2 - Durée 2h

Saisie, Boucle tant que, Répétition pour

java Logo

Rappels

Et faire très attention à l'indentation...

Saisies

En Java, pour faire une saisie, nous ferons appel à la classe Scanner et on a besoin de l'importer en début de programme en ajoutant import java.util.Scanner; avant public class NomDeLaClasse

Nous pourrons alors créer un objet Scanner dans la fonction principale (main) ainsi : Scanner sc = new Scanner(System.in);

Cet objet sc sera alors utilisé pour saisir des entiers, réels ou chaînes.

Pour demander un entier et le mettre dans une variable n, vous utiliserez l'instruction : int n = sc.nextInt();

Pour demander un entier et le mettre dans une variable x, vous utiliserez l'instruction : double x = sc.nextDouble();

Pour demander une chaîne et la mettre dans une variable s, vous utiliserez l'instruction : String s = sc.nextLine();

Avant chaque nouvelle saisie, il est plus sûr de réinitialiser l'objet sc pour éviter les surprises : sc = new Scanner(System.in);

Attention, la classe Scanner n'est pas compatible avec l'exécution directe dans Sublime Text. Vous devez compiler puis exécuter le programme dans le terminal.

/home/votre-login/M1207/TP1$ javac TestSaisies.java
/home/votre-login/M1207/TP1$ java TestSaisies

Remarquez que si l'utilisateur saisit le nombre 2 pour le réel par exemple alors à l'affichage on a 2.0.

Remarquez que la saisie se fait en mode français (la virgule sert pour les nombres à virgules : l'utilisateur doit saisir le réel 2,5 pour le réel 2.5 par exemple), mais dans le programme Java il faut bien utiliser un point pour les nombres à virgule, on retrouve en affichage de sortie l'utilisation du point. Il serait possible de modifier le comportement de la saisie pour qu'elle accepte le point à la place de la virgule.

Exemple de déroulement de ce programme

Veuillez svp saisir un entier : 2
Veuillez svp saisir un réel : 2
Veuillez svp saisir une phrase : Toto
L'entier n saisi vaut 2
Le réel x saisi vaut 2.0
La chaîne s saisie vaut Toto

Autre exemple de déroulement de ce programme

Veuillez svp saisir un entier : 2
Veuillez svp saisir un réel : 2,5
Veuillez svp saisir une phrase : R&T
L'entier n saisi vaut 2
Le réel x saisi vaut 2.5
La chaîne s saisie vaut R&T

Exemple de déroulement de ce programme

n ? 4
4 est pair.

Autre exemple de déroulement de ce programme

n ? 3
3 est impair.

Chaque fois qu'un exemple est donné, votre programme doit absolument avoir le même comportement sur cet exemple.

Boucle tant que

Le "tant que" donné en pseudo code par

tant que condition faire
    // Instructions
fintantque

se fait en Java par la clause while (condition) { ... }

while(condition){
    // Instructions
}

Comme pour le si, les accolades ne sont pas nécessaires si une seule instruction dans le while.

Commencez par chercher sur papier comment faire cela en pseudo code.

Vous allez avoir besoin d'une variable n entière récupérant la valeur saisie par l'utilisateur.

Tant que cette valeur saisie n'est pas plus grande que 5 vous allez devoir poser la question (i.e. afficher sur une ligne) "Veuillez saisir un entier strictement plus grand que 5 : " et mettre la valeur donnée par l'utilisateur dans n.

Au sortir de la boucle, vous devez afficher la même phrase que sur l'exemple donné.

Chaque fois qu'un exemple est donné, votre programme doit absolument avoir le même comportement sur cet exemple.

Répétition pour

Le "pour i allant de 1 à n" donné en pseudo code par

pour i allant de 1 à n faire
    // Instructions
finpour

se fait en Java avec un tant que comme ceci

int i=1;
while(i<=n){
    // Instructions
    i=i+1
}

qui se réécrit par convention dans une clause for comme ceci (le for fait exactement la même chose que le tant que ci-dessus, c'est juste une réécriture)

for(int i=1;i<=n;i=i+1){
    // Instructions
}

forwhile

Finished! Hurrah! 🤟⚡️Si vous avez fini avant la fin, aidez les autres à finir aussi :-) N'oubliez pas de déposer votre archive sur Moodle pour ce TP et de faire votre mémento pour le contrôle TP.