adplus-dvertising

Exercices corrigés en Java et langage C pour maîtriser switch-case

Exercices corrigés en Java et langage C pour maîtriser switch-case

L'instruction Switch-case est une puissante fonctionnalité de programmation qui vous permet de contrôler le flux de votre programme en fonction de la valeur d'une variable ou d'une expression. Vous pouvez l'utiliser pour exécuter différents blocs de code, selon la valeur de la variable lors de l'exécution.

Bien que les langages populaires comme Java et C ++ aient une instruction switch intégrée, vous serez peut-être surpris de savoir que le langage Python n'en a pas.

Cependant, en raison de la table de sauts, une instruction switch est beaucoup plus rapide qu'une if-else-if. Au lieu d'évaluer chaque condition séquentiellement, il suffit de rechercher une fois la variable/expression évaluée et de passer directement à la branche de code appropriée pour l'exécuter.

Dans les exercices suivants, nous essaierons de vous montrer comment utiliser un switch-case pour faire face à divers problèmes.

Exercice 1

Écrivez un programme pour Saisir le numéro du jour dans une semaine (1-7) et affichez le nom du jour à l'aide de switch case.

Exemple :
Données d'entrée 
  • Saisir le numéro du jour : 2

Données de sortie
  • Mardi
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int jour;

        // Fournir les données d'entrée
        System.out.print("Saisir le numéro de jour : ");
        jour = clavier.nextInt();

        switch (jour) {
        case 1:
            System.out.println("Lundi");
            break;
        case 2:
            System.out.println("Mardi");
            break;
        case 3:
            System.out.println("Mercredi");
            break;
        case 4:
            System.out.println("Jeudi");
            break;
        case 5:
            System.out.println("Vendredi");
            break;
        case 6:
            System.out.println("Samedi");
            break;
        case 7:
            System.out.println("Dimanche");
            break;
        default:
            System.out.println("Entrée invalide! Veuillez saisir le numéro de jour entre 1 et 7.");
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

int main()
{
    int jour;
    
    /* Saisir les données d'entrée */
    printf("Saisir le numéro de jour : ");
    scanf("%d", &jour);
    
    switch(jour)
    {
        case 1: 
            printf("Lundi");
            break;
        case 2: 
            printf("Mardi");
            break;
        case 3: 
            printf("Mercredi");
            break;
        case 4: 
            printf("Jeudi");
            break;
        case 5: 
            printf("Vendredi");
            break;
        case 6: 
            printf("Samedi");
            break;
        case 7: 
            printf("Dimanche");
            break;
        default: 
            printf("Entrée invalide! Veuillez saisir le numéro de jour entre 1 et 7.");
    }

    return 0;
}
                                        

Exercice 2

Écrivez un programme pour entrer le numéro du mois et imprimez le nombre total de jours de ce mois en utilisant switch-case

Le nombre total de jours dans un mois est donné par le tableau ci-dessous.

MoisNombre de jours
Janvier, Mars, Mai, Juillet, Aout, Octobre, Décembre31 jours
Février28/29 jours
Avril, Juin, Septembre, Novembre30 jours
Exemple :
Données d'entrée 
  • Saisir le numéro du mois : 7

Données de sortie
  • 31 jours
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int mois;

        // Fournir les données d'entrée
        System.out.print("Saisir le numéro de mois (1-12): ");
        mois = clavier.nextInt();

        switch (mois) {
        case 1:
            System.out.println("31 jours");
            break;
        case 2:
            System.out.println("28/29 jours");
            break;
        case 3:
            System.out.println("31 jours");
            break;
        case 4:
            System.out.println("30 jours");
            break;
        case 5:
            System.out.println("31 jours");
            break;
        case 6:
            System.out.println("30 jours");
            break;
        case 7:
            System.out.println("31 jours");
            break;
        case 8:
            System.out.println("31 jours");
            break;
        case 9:
            System.out.println("30 jours");
            break;
        case 10:
            System.out.println("31 jours");
            break;
        case 11:
            System.out.println("30 jours");
            break;
        case 12:
            System.out.println("31 jours");
            break;
        default:
            System.out.println("Entrée invalide! Veuillez saisir le numéro du mois entre (1-12).");

        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

int main()
{
    int mois;

    /* Saisir les données d'entrée */
    printf("Saisir le numéro de mois (1-12): ");
    scanf("%d", &mois);

    switch(mois)
    {
        case 1: 
            printf("31 jours");
            break;
        case 2: 
            printf("28/29 jours");
            break;
        case 3: 
            printf("31 jours");
            break;
        case 4: 
            printf("30 jours");
            break;
        case 5: 
            printf("31 jours");
            break;
        case 6: 
            printf("30 jours");
            break;
        case 7: 
            printf("31 jours");
            break;
        case 8: 
            printf("31 jours");
            break;
        case 9: 
            printf("30 jours");
            break;
        case 10: 
            printf("31 jours");
            break;
        case 11: 
            printf("30 jours");
            break;
        case 12: 
            printf("31 jours");
            break;
        default: 
            printf("Entrée invalide! Veuillez saisir le numéro du mois entre (1-12).");

    }

    return 0;
}
                                        

Exercice 3

Écrivez un programme pour saisir un alphabet et vérifiez s'il s'agit d'une voyelle ou d'une consonne en utilisant "switch-case".

Les lettres a, e, i, o et u en minuscules et en majuscules sont appelées voyelles. Les alphabets autres que les voyelles sont appelés consonnes.

Exemple :
Données d'entrée 
  • Saisir une lettre : a

Données de sortie
  • a est une voyelle
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        char ch;

        // Fournir les données d'entrée
        System.out.print("Saisir une lettre : ");
        ch = clavier.next().charAt(0);

        switch (ch) {
        case 'a':
            System.out.println("Voyelle");
            break;
        case 'e':
            System.out.println("Voyelle");
            break;
        case 'i':
            System.out.println("Voyelle");
            break;
        case 'o':
            System.out.println("Voyelle");
            break;
        case 'u':
            System.out.println("Voyelle");
            break;
        case 'A':
            System.out.println("Voyelle");
            break;
        case 'E':
            System.out.println("Voyelle");
            break;
        case 'I':
            System.out.println("Voyelle");
            break;
        case 'O':
            System.out.println("Voyelle");
            break;
        case 'U':
            System.out.println("Voyelle");
            break;
        default:
            System.out.println("Consonne");
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

int main()
{
    char ch;

    /* Saisir les données d'entrée */
    printf("Saisir une lettre: ");
    scanf("%c", &ch);


    switch(ch)
    {
        case 'a': 
            printf("Voyelle");
            break;
        case 'e': 
            printf("Voyelle");
            break;
        case 'i': 
            printf("Voyelle");
            break;
        case 'o': 
            printf("Voyelle");
            break;
        case 'u': 
            printf("Voyelle");
            break;
        case 'A': 
            printf("Voyelle");
            break;
        case 'E': 
            printf("Voyelle");
            break;
        case 'I': 
            printf("Voyelle");
            break;
        case 'O': 
            printf("Voyelle");
            break;
        case 'U': 
            printf("Voyelle");
            break;
        default: 
            printf("Consonne");
    }

    return 0;
}
                                        

Exercice 4

Écrivez un programme pour saisir deux nombres de l'utilisateur et trouvez le maximum entre les deux nombres en utilisant "switch case".

Exemple :
Données d'entrée 
  • Nombre 1 : 13
  • Nombre 2 : 12

Données de sortie
  • 13 est le maximum
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int num1, num2;

        // Fournir les données d'entrée
        System.out.print("Saisir nombre 1 : ");
        num1 = clavier.nextInt();

        System.out.print("Saisir nombre 2 : ");
        num2 = clavier.nextInt();

        // (num1 > num2) retourne 0(Faux) ou 1(Vrai) */
        switch ((num1 > num2) ? 1 : 0) {
        // Si (num1>num2) est fausse */
        case 0:
            System.out.println(num2 + " est le maximum");
            break;

        // Si (num1>num2) est vraie */
        case 1:
            System.out.println(num1 + " est le maximum");
            break;
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

int main()
{
    int num1, num2;

    /* Saisir les données d'entrée */
    printf("Saisir deux nombres: ");
    scanf("%d%d", &num1, &num2);

    /* (num1 > num2) retourne 0(Faux) ou 1(Vrai) */
    switch(num1 > num2)
    {   
        /* Si (num1>num2) est fausse */
        case 0: 
            printf("%d est le maximum", num2);
            break;

        /* Si (num1>num2) est vraie */
        case 1: 
            printf("%d est le maximum", num1);
            break;
    }

    return 0;
}
                                        

Exercice 5

Écrivez un programme pour saisir un nombre de l'utilisateur et vérifiez si ce nombre est pair ou impair en utilisant "switch case".

Exemple :
Données d'entrée 
  • Saisir un nombre : 14

Données de sortie
  • 14 est un nombre pair
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int num;

        // Fournir les données d'entrée
        System.out.print("Saisir un nombre : ");
        num = clavier.nextInt();

        switch (num % 2) {
        /* Si n%2 == 0 */
        case 0:
            System.out.println("Pair");
            break;

        /* Sinon n%2 == 1 */
        case 1:
            System.out.println("Impair");
            break;
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

int main()
{
    int num;

    /* Saisir les données d'entrée */
    printf("Saisir un nombre");
    scanf("%d", &num);

    switch(num % 2)
    {
        /* Si n%2 == 0 */
        case 0: 
            printf("Pair");
            break;

        /* Sinon n%2 == 1 */
        case 1: 
            printf("Impair");
            break;
    }

    return 0;
}
                                        

Exercice 6

Écrivez un programme pour entrer un nombre et vérifiez si ce nombre est positif, négatif ou nul en utilisant "switch case".

Exemple :
Données d'entrée 
  • Saisir un nombre : -3

Données de sortie
  • -3 est un nombre négatif
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int num;

        // Fournir les données d'entrée
        System.out.print("Saisir un nombre : ");
        num = clavier.nextInt();

        switch (num > 0 ? 1 : 0) {
        // Num est positif
        case 1:
            System.out.println(num + " est positif.");
            break;

        // Num soit négatif soit nul
        case 0:
            switch (num < 0 ? 1 : 0) {
            case 1:
                System.out.println(num + "  est négatif.");
                break;
            case 0:
                System.out.println(num + "  est nul.");
                break;
            }
            break;
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

int main()
{
    int num;

    /* Saisir les données d'entrée */

    printf("Saisir un nombre: ");
    scanf("%d", &num);

    switch (num > 0)
    {
        // Num est positif
        case 1:
            printf("%d est positif.", num);
        break;

        // Num soit négatif soit nul
        case 0:
            switch (num < 0)
            {
                case 1: 
                    printf("%d est négatif.", num);
                    break;
                case 0:
                    printf("%d est nul.", num);
                    break;
            }
        break;
    }

    return 0;
}
                                        

Exercice 7

Écrivez un programme pour créer une calculatrice qui exécute des opérations arithmétiques de base (additionn, soustration, multiplication et diviseion) en utilisant "switch-case"

Exemple :
Données d'entrée 
  • 7 - 2

Données de sortie
  • 5
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        double num1, num2, resultat = 0;
        char op;

        // Fournir les données d'entrée
        System.out.print("Saisir nombre 1 : ");
        num1 = clavier.nextDouble();

        System.out.print("Saisir l'opérateur: ");
        op = clavier.next().charAt(0);

        System.out.print("Saisir nombre 2 : ");
        num2 = clavier.nextDouble();

        switch (op) {
        case '+':
            resultat = num1 + num2;
            break;

        case '-':
            resultat = num1 - num2;
            break;

        case '*':
            resultat = num1 * num2;
            break;

        case '/':
            resultat = num1 / num2;
            break;

        default:
            System.out.println("Opérateur invalid");
        }

        System.out.println(num1 + " " + op + " " + num2 + " = " + resultat);

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

int main()
{
    char op;
    float num1, num2, resultat=0.0f;

    /* Saisir les données d'entrée */
    printf("Saisir une opération [Num 1] [+ - * /] [Num 2]\n");
    scanf("%f %c %f", &num1, &op, &num2);

    switch(op)
    {
        case '+': 
            resultat = num1 + num2;
            break;

        case '-':
            resultat = num1 - num2;
            break;

        case '*':
            resultat = num1 * num2;
            break;

        case '/': 
            resultat = num1 / num2;
            break;

        default:
            printf("Opérateur invalid");
    }

    /* afficher le résultat */
    printf("%.2f %c %.2f = %.2f", num1, op, num2, resultat);

    return 0;
}
                                        

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.