Premier programme, variables et types

Première leçon du cours Java fondamentaux, en accès libre : environ 20 minutes, 4 exercices et 3 questions de quiz. C'est la leçon de base du catalogue ; dans l'espace étudiant, elle est réécrite pour ton profil.

Objectifs

  • Écrire, compiler et exécuter un programme Java
  • Déclarer des variables avec les types primitifs et String
  • Lire une saisie au clavier avec Scanner et afficher un résultat formaté

Structure d'un programmeTypes primitifs et StringEntrées-sorties console

Java est un langage compilé et typé statiquement, utilisé pour les applications d’entreprise, les back-ends web (Spring Boot), Android et les outils de données. Le code source est compilé en bytecode, exécuté par la machine virtuelle Java (JVM) sur n’importe quel système.

Le programme minimal

public class Main {                                  // le fichier s'appelle Main.java
    public static void main(String[] args) {         // point d'entrée du programme
        System.out.println("Bonjour, Java !");       // affiche puis passe à la ligne
    }
}
java Main.java          # compile en mémoire et exécute (fichier unique)
# ou en deux étapes :
javac Main.java && java Main

Chaque instruction se termine par ;, les blocs sont délimités par { } et Java distingue majuscules et minuscules (main n’est pas Main).

Nouveauté de Java 25 (version LTS actuelle) : les fichiers source compacts. Pour un petit programme, la classe peut disparaître et main n’a plus besoin d’être public static ni de recevoir args :

void main() {                                   // fichier Bonjour.java, sans classe
    String prenom = IO.readln("Votre prénom : "); // IO (java.lang) lit et affiche
    IO.println("Bonjour " + prenom);
}

Il se lance avec java Bonjour.java, et les classes courantes (List, ArrayList, Scanner…) y sont disponibles sans import. Nous utilisons ici la forme classique public class Main, que vous rencontrerez dans tous les projets existants.

Variables et types

int age = 34;                 // entier sur 32 bits
long population = 68_000_000L; // entier sur 64 bits (suffixe L), _ pour la lisibilité
double prix = 19.99;          // nombre à virgule (point décimal !)
boolean actif = true;         // true ou false
char initiale = 'A';          // un caractère, entre apostrophes
String nom = "Ada";           // texte, entre guillemets (String est une classe)
var quantite = 3;             // type déduit : int
final double TVA = 0.20;      // constante : ne peut plus changer

Le type est vérifié à la compilation : int x = "bonjour"; ne compile pas. C’est une sécurité précieuse sur les gros projets.

Opérations et conversions

int a = 7, b = 2;
System.out.println(a / b);          // 3   (division entière !)
System.out.println(a % b);          // 1   (reste)
System.out.println((double) a / b); // 3.5 (conversion explicite)
int arrondi = (int) 3.99;           // 3   (troncature)
int n = Integer.parseInt("42");     // texte -> entier
String s = "Total : " + 42;         // + concatène avec une chaîne

Attention : 5 / 2 vaut 2. Dès qu’un des deux opérandes est un double, le résultat l’est aussi.

Lire une saisie avec Scanner

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String prenom = sc.nextLine();      // une ligne complète
        int annee = sc.nextInt();           // un entier
        System.out.println("Bonjour " + prenom + ", vous aurez " + (2026 - annee) + " ans cette année.");
    }
}

next() lit un mot, nextInt() un entier, nextLine() le reste de la ligne. Pour les nombres décimaux, Double.parseDouble(sc.next()) évite les surprises liées à la langue du système (virgule ou point).

Afficher un résultat formaté

double moyenne = 14.0 / 3;
System.out.printf("Moyenne : %.2f%n", moyenne);   // Moyenne : 4.67
String ligne = String.format(java.util.Locale.ROOT, "%.2f", moyenne); // point décimal garanti

%d affiche un entier, %.2f un décimal à 2 chiffres, %s une chaîne et %n un saut de ligne. Sans précision de Locale, le séparateur décimal dépend des réglages du système : en français, 4,67.

Vous savez maintenant écrire un programme qui lit, calcule et affiche : la base de tous les exercices suivants.

Exercices

Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.

  1. CodeDifficulté 1Sandbox serveur2 indices

    Saluer l'utilisateur

    Écrivez un programme qui lit un prénom sur l’entrée standard (une ligne) et affiche Bonjour, <prénom> !.

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            // À compléter
        }
    }
  2. CodeDifficulté 2Sandbox serveur2 indices

    Calculatrice de division

    Lisez deux entiers a et b (b non nul) et affichez sur quatre lignes :

    Somme : <a+b>
    Quotient entier : <a/b>
    Reste : <a%b>
    Division : <a/b avec 2 décimales>

    Utilisez String.format(Locale.ROOT, "%.2f", ...) pour la dernière ligne.

    import java.util.Locale;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            int b = sc.nextInt();
            // À compléter
        }
    }
  3. CodeDifficulté 2Sandbox serveur2 indices

    Convertir des secondes

    Lisez un nombre entier de secondes et affichez-le au format HH:MM:SS (heures sur au moins 2 chiffres). Exemple : 3725 → 01:02:05.

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int total = sc.nextInt();
            // heures, minutes, secondes avec / et %
        }
    }
  4. QCMDifficulté 11 indice

    Division entière

    Que vaut double r = 7 / 2; ?

    • 3.5
    • 3.0
    • Erreur de compilation

Quiz de fin de leçon

  1. Quelle méthode est le point d’entrée d’un programme Java classique ?

    • public static void main(String[] args)
    • public void start()
    • static int run()
  2. Quel type choisir pour stocker 19.99 ?

    • int
    • double
    • char
  3. Que fait var x = 10; ?

    • Crée une variable sans type
    • Déclare une variable dont le type int est déduit par le compilateur
    • Crée une constante

La suite du cours

  1. Conditions, opérateurs logiques et switch15 min
  2. Boucles for, while et do-while20 min
  3. Écrire des méthodes20 min
  4. Tableaux, chaînes de caractères et ArrayList20 min

Java fondamentaux · Débutant · 3 h 05