Cours
C#: Les instructions
Un cours complet pour maîtriser C#: Les instructions.
0 chapitres
0 QCM
Accès gratuit
Les opérateurs et les instructions en C#
C#: Les instructions
Introduction
Par exemple, le code suivant n'est pas autorisé :
int i;
{
int i; // Erreur : i déjà déclaré dans le bloc parent
...
}
Exemple de déclaration autorisée
{
int i;
...
}
...
{
int i;
...
}
Les instructions de sélection
Syntaxe:
if(expression boolean)
{
/*déclaration (s ) sera exécutée
si l'expression booléenne est vraie */
}
else
{
/* déclaration (s ) sera exécutée
si l'expression booléenne est fausse */
}
if ( nombre == 10 )
{
resultat = 1 ;
}
else
{
resultat =0 ;
}
if ( nombre == 10 )
{
resultat = 1 ;
}
else if (nombre == 9)
{
resultat =10 ;
}
else
{
resultat =0 ;
}
Exercice_apcpedagogie08
Exercice_ValeurAbsolue
switch (expression)
{
case constante :
instructions;
break;
[default :
instructions;
break;]
}
//Les [ ] indiquent que cette section est facultative.
//expression :sélecteur qui peut être de type entier ou de type chaîne
//instruction(s):les instructions à exécuter lorsque le contrôle est transféré au case ou à default.
//break :instruction de saut qui transfère le contrôle à la fin du switch.
int caseSwitch = 1;
switch (caseSwitch)
{
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
Exercices d'applications
Exercice_apcpedagogie02
Ecrire un programme C # pour détecter les touches pressées par l'utilisateur.
Si l'utilisateur presse l'une des touches numériques (0-9), le programme affiche le nombre qui est pressé
Si non le programme affichera "Touche non autorisée".
Exercice_apcpedagogie04
Ecrire un programme C # qui permet à l'utilisateur de choisir la bonne réponse d'une question.
Quelle est la bonne façon de déclarer une variable pour stocker une valeur entière en C #?
a: 1x int = 10;
b: int x = 10;
c: float x = 10.0f;
d: string x="10";
Choisissez la lettre de réponse juste:
Exercice Instructions switch 003
Ecrire un programme C # qui permet à l'utilisateur de saisir une lettre, et le programme vérifie si c'est bien une lettre de l'alphabet en premier temps puis il teste si la lettre saisie est la première d'un grade en deuxième lieu.
le programme affiche le grade suivant le tableau suivant:
e: Excellent;
t: Trés bien;
b: Bien;
m: Mauvais;
p:Passable;
l:la Moyenne;
a:non Admis;
s:Succès;
Grade non trouvé:
decimal cout = 0;
string choixGrandeur = "";
...
switch (choixGrandeur)
{
case "Très Petit" :
case "Petit" :
cout += 1.75;
break;
case "Moyen" :
cout += 2.25;
break;
case "Grand" :
cout += 3.75;
break;
default :
cout += 4.50;
break;
}//fin du switch
// Le switch est équivalent à la structure if imbriqué.
decimal cout =0;
if( choixGrandeur == "Très Petit" || choixGrandeur == "Petit" )
cout += 1.75;
else if ( choixGrandeur == "Moyen" )
cout += 2.25;
else if ( choixGrandeur == "Grand" )
cout += 3.75;
else
cout += 4.50;
Dans l'exemple suivante la comparaison est effectuée avec la variable choix de type int.
decimal prixItem = 0;
int quantite = 0;
...
switch ( choix )
{
case 0 :
prixItem = 0.40m;
quantite = 150;
break;
case 1 :
prixItem = 0.50m;
quantite = 250;
break;
case 2 :
prixItem = 0.60m;
quantite = 350;
break;
case 3 :
prixItem = 0.70m;
quantite = 450;
break;
}//fin du switch
// Le switch est équivalent un if imbriqué.
decimal prixItem = 0;
int quantite = 0;
if( choix == 0 )
{
prixItem = 0.40m;
quantite = 150;
}
else if ( choix == 1 )
{
prixItem = 0.50m;
quantite = 250;
}
else if ( choix == 2 )
{
prixItem = 0.60m;
quantite = 350;
}
else if ( choix == 3 )
{
prixItem = 0.70m;
quantite = 450;
}
Dans l'exemple suivante la comparaison est effectuée avec la variable cote de type char.
char cote;
...
switch ( cote )
{
case 'A' :
Console.WriteLine("Excellent!");
break;
case 'B' :
Console.WriteLine("C'est bien!");
break;
case 'C' :
case 'D' :
Console.WriteLine("Passable...");
break;
case 'E' :
Console.WriteLine("Échec!");
break;
}//fin du switch
// Le switch est équivalent un if imbriqué.
if( cote == 'A' )
{
Console.WriteLine("Excellent!");
}
else if ( cote == 'B' )
{
Console.WriteLine("C'est bien!");
}
else if ( cote == 'C' || cote == 'D' )
{
Console.WriteLine("Passable...");
}
else if ( cote =='E' )
{
Console.WriteLine("Échec!");
}
Les instructions d'itération
do for foreach in while
Syntaxe
////tant que l'expression est vraie, exécuter le bloc d'instructions.
while(expression booléenne)
{
instruction(s);
}
//Ici , l'instruction(s ) peut être une simple déclaration ou un bloc d'instructions.
//La condition peut être toute expression.
Une instruction while s'exécute comme suit :
Exemple:
Extraire les chiffres d'un nombre.int unNombre = 782345;
int unChiffre = 0;
while (unNombre > 0)
{
unChiffre = unNombre % 10;
unNombre = unNombre / 10;
Console.WriteLine(unChiffre);
} StreamReader objVentesALire = new StreamReader("ventes.txt");
while ( !objVentesALire.EndOfStream ) //Tant que ce n’est pas la fin du fichier.
{
string ligneLue = objVentesALire.ReadLine();
. . .
. . .
}
objVentesALire.Close();
// While : pas la bonne structure à utiliser
// car le nombre de répétitions est connu.
int cptFois = 1;
while ( cptFois <= 5 )
{
Console.WriteLine("allo");
cptFois++
}
//Comparer le while et le for
// For : la bonne structure à utiliser
for( int cptFois = 1; cptFois <= 5; cptFois++ )
{
Console.WriteLine("allo");
}
Exercice d'application:
Exercice_apcpedagogie013
créer un mini-jeu "Le nombre mystère"sur console c# qui répond aux conditions suivants.
<ul
Un nombre est tiré hasard entre 0 et 100 (les deux inclus : [0; 100]).
On demande au joueur d'entrer un nombre.
Si ce n'est pas un nombre entre 0 et 100, on indique qu'il y a une erreur.Sinon, on compare avec le nombre tiré au sort :
Soit c'est le même, alors le jeu est terminé.
soit le nombre entré ne convient pas et il faut indiquer au joueur si le bon nombre est inférieur ou supérieur au nombre mystère.
Exerciceinstruction While 001
do
{
instructions;
} while (expression booléenne); // tant que c'est vrai, recommencer le bloc d'instructions.
int cptLignes = 0;
do
{
Console.WriteLine(cptLignes);
cptLignes++;
} while (cptLignes < 5); // tant que c'est vrai, exécuter les instructions.
//Résultat
0
1
2
3
4
Exercice instruction Do While 001
for ( initialisation ; condition ou test_continuation ; incrémentation ou décrémentation)
{
instructions;
}
//Clarifications: for (int nbrFois = 1; nbrFois <= 5; nbrFois++)
{
Console.WriteLine("apcpedagogie.com");
}
for ( int i = 0; i < 10; i++ ) Console.WriteLine(i); Console.WriteLine(i); // Erreur : i n'est plus dans la portéeSurcharge :
foreach( type item in Collection)
{
instructions;
}
//Clarifications: string maChaine = "je lis mon cours dans apcpedagogie.com";
int nbrDeC= 0;
foreach (char caractereCourant in maChaine )
{
if( caractereCourant == 'c')
{
nbrDeC++;
}
}
Console.WriteLine("Nombre de c : " + nbrDeC);
Exercice Instructions for 001
Ecrire un programme en c# qui affiche les 31 jours du mois de Janvier à l’aide d’une boucle for.
Exercice Instructions for 002
Écrire un programme en c# qui affiche un calendrier pour une année entière.
Utilisez les deux méthodes Console.Write() et Console.WriteLine().
La représentation finale sera :
(1 jours du mois 1;2 jours du mois 1;3 jours du mois 1;.....
--------------------------
(1 jours du mois 2;2 jours du mois 2;3 jours du mois 2;.....
--------------------------
(1 jours du mois 3;2 jours du mois 3;3 jours du mois 3;.....
Les instructions de saut
Les instructions de saut passent le contrôle sans condition.
jump-statement break-statement continue-statement goto-statement return-statement throw-statement
using System;
namespace break
{
class Program
{
static void Main(string[] args)
{
/* définition de la variable locale */
int a = 10;
/* while loop exécution */
while (a < 20)
{
Console.WriteLine("Valeur de a: {0}", a);
a++;
if (a > 15)
{
/* mettre fin à la boucle en utilisant
l'instruction break */
break;
}
}
Console.ReadLine();
}
}
}
//Lorsque le code ci-dessus est compilé et exécuté,
//il donne le résultat suivant :
Valeur de a: 10
Valeur de a: 11
Valeur de a: 12
Valeur de a:13
Valeur de a: 14
Valeur de a: 15
Exemple
using System;
namespace Loops
{
class Program
{
static void Main(string[] args)
{
/*définition de la variable locale */
int a = 10;
/* do loop execution */
do
{
if (a == 15)
{
/* Sauter l'itération */
a = a + 1;
continue;
}
Console.WriteLine("value of a: {0}", a);
a++;
}
while (a < 20);
Console.ReadLine();
}
}
}
//Lorsque le code ci-dessus est compilé et exécuté,
//il donne le résultat suivant :
Valeur de a: 10
Valeur de a: 11
Valeur de a: 12
Valeur de a:13
Valeur de a: 14
Valeur de a: 16
Valeur de a: 17
Valeur de a: 18
Valeur de a: 19
Exemple:
using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Goto Exemple départ");
goto displayInfo;
Console.WriteLine("Ce code a sauté le code");
displayInfo:
{
Console.WriteLine("Il est le bloc displayInfo");
}
Console.Read();
}
}
}
Dans ce chapitre , vous serez capable de :Déclarer return en C #? Connaitre la fonctionnalité de la déclaration de return? Utiliser la déclaration de return dans la programmation?
Exemple:
using System ;
using System . Collections . Generic ;
using System . Linq ;
using System . Text ;
namespace return_statements
{
class Program
{
public int add ( int num1 , int num2 )
{
// Retourner l'addition de num1 et num2
return num1 + num2 ;
}
static void Main ( string [ ] args )
{
Program p = new Program ( ) ;
int result ;
//Appeler la fonction add qui sera de retour 9 au résultat valable .
result = p . add ( 3 , 6 ) ;
Console . WriteLine ( result ) ;
Console . ReadLine ( ) ;
}
}
}
//Dans cet exemple, la variable resultat appelle la fonction add ()
//avec deux paramètres et la fonction add () retourne l'addition à la fois
//le numéro à la variable de résultat en utilisant mot-clé return .
Dans ce chapitre , vous serez capable de :Connaitre l'instruction throw en C #? Connaitre la fonctionnalité de la déclaration de throw? Utiliser la déclaration de throw en C #?
Exemple:
using System ;
using System . Collections . Generic ;
using System . Linq ;
using System . Text ;
namespace throw_statement
{
class Program
{
static void Main ( string [ ] args )
{
int num1 , num2 , result ;
Console . WriteLine ( "Entrez le premier nombre" ) ;
num1 = Convert . ToInt32 ( Console . ReadLine ( ) ) ;
Console . WriteLine ( "Entrez le deuxième nombre" ) ;
num2 = Convert . ToInt32 ( Console . ReadLine ( ) ) ;
try
{
if ( num2 == 0 )
{
throw new Exception ( "Vous ne pouvez pas diviser par zéro: Exception\n\n" ) ;
}
result = num1 / num2 ;
Console . WriteLine ( "{0} / {1} = {2}" , num1 , num2 , result ) ;
}
catch ( Exception e )
{
Console . WriteLine ( "Erreur : " + e . ToString ( ) ) ;
}
Console . ReadLine ( ) ;
}
}
}
Lever vos propres exceptions
if (minute = 60) {
string fault = minute + " n'est pas une minute valide";
throw new InvalidTimeException(fault);
// !!Pas atteint!!
}
Exercices d'application
Exercice Terminologie
Instruction:1
if (i<j) cout = "ascendant"
else cout = "non ascendant" ;
/////////////////////////////////////////
Instruction:2
int n ;
...
switch (2*n+1)
{ case 1 : cout = "petit" ;
case n : cout ="moyen" ;
}
///////////////////////////////////////
Instruction:3
const int LIMITE=100
int n ;
...
switch (n)
{ case LIMITE1 : cout = "un peu moins" ;
case LIMITE : cout = "juste" ;
case LIMITE+1 : cout = "un peu plus" ;
}
Exercice Rappel instructions
Soit le petit programme suivant :
Écrire un programme réalisant exactement la même chose, en employant, à la place de l’instruction
for :
une instruction while,
une instruction do ... while.
int i, n, somme ;
somme = 0 ;
for (i=0 ; i<4 ; i++)
{
Console.WriteLine("Donnez un entier pour l'étape numéro {0}",i) ;
n = int.Parse(Console.ReadLine());
somme += n ;
}
Console.WriteLine("La somme est {0}", somme);
Console.ReadLine();
Exercice_apcpedagogie11
Ecrire un programme en C# qui calcul le PGCD de deux entiers non nuls, à partir de la méthode d'Euclide.
Rappel de l'algorithme d'Euclide Le principe est: on soustrait un nombre de l'autre autant de fois qu'on peut et on regarde ce qui reste : cela revient à faire une division euclidienne.Commençons par effectuer la division euclidienne du plus grand nombre par le plus petit. Calculer le PGCD de 357 et 561 à l'aide de l'algorithme d'Euclide Réponse: 561÷357=on obtient 1 en quotient et 204 en reste.==========>561 = 357 x 1 + 204 Après, on continue : On divise le plus petit des deux nombres de la division précédente par le reste de cette division. 357÷204 on obtient 1 en quotient et 153 en reste.==========>357= 204 x 1 + 153 Après, on continue : 204÷153 on obtient 1 en quotient et 51 en reste.==========>204= 153 x 1 + 51 Après, on continue : 153÷51 on obtient 3 en quotient et 0 en reste.==========>153= 51 x 3 + 0 ======> Le dernier reste non nul est 51 donc PGCD (357 ; 561) = 51. On dit que deux nombres sont premiers entre eux s'ils n'ont aucun diviseur commun autre que 1, c'est-à-dire si leur PGCD est 1 !
Exercice_apcpedagogie12
Ecrire un programme en C# qui calcul le PGCD de deux entiers non nuls, à partir de la méthode dite algorithme des différences.
Rappel de l'algorithme des différences Le principe est: si un nombre est un diviseur de 2 nombres a et b, alors il est aussi un diviseur de leur différence a - b.Commençons par par soustraire le plus grand nombre par le plus petit. Calculer le PGCD de 36 et 60 à l'aide de l'algorithme des différences Réponse: 60-36=on obtient 24. Après, on continue : On continue en utilisant le résultat obtenu et le plus petit des 2 termes de la soustraction :. 36 - 24 = 12 24 - 12 = 12 12 - 12 = 0 on prend le résultat juste au-dessus du zéro, c'est le PGCD ! (dernier résultat non nul) ======> Le dernier reste non nul est 12 donc PGCD (60 ; 36) = 12. On dit que deux nombres sont premiers entre eux s'ils n'ont aucun diviseur commun autre que 1, c'est-à-dire si leur PGCD est 1 !