Accueil
 Sommaire du cours
 1  Introduction à Java
 2  Concepts de bases de Java
 2.1  Syntaxe de base
 2.1.1  Premier en C
 2.1.2  Premier en Java
 2.2  Types Primitifs
 2.3  Tableaux
 2.4  Méthodes
 2.5  Exemple de passage d'arguments
 Questions
 3  Classes et objets en Java
 4  Généralisation spécialisation en Java
 5  Organisation des sources Java
 6  API Java
 7  Exceptions en Java
 8  Concepts objets avancés en Java
 Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


2.1.2 Premier en Java
 
package complements.commeenc; 
2public class Premier { 
    private static boolean estPremier(final int nb) { 
        if (nb == 1) { return false; } 
        for (int i=2; i<= nb/2; i++) { 
6            if (nb%i == 0) { 
                return false; 
            } 
        } 
10        return true; 
    } 
    public static void main(String[] args) { 
        int nombre = Console.readInt("Entrezunnombreentier"); 
14        System.out.println("Lenombre" + nombre + "est-ilpremier?"); 
        System.out.print("Lenombre" + nombre); 
        if (estPremier(nombre)) { 
            System.out.println("estpremier"); 
18        } else { 
            System.out.println("nestpaspremier"); 
        } 
    } 
22}

    précédent     suivant 


Dans l’exemple précédent, nous avons besoin de réaliser des entrées au clavier. Cette opération est relativement complexe, car elle utilise des classes de l’interface standard Java. C’est pourquoi, nous avons réalisé la classe utilitaire Console pour masquer la complexité de ces opérations et fournir des méthodes simples pour obtenir des nombres entiers ou des chaînes de caractères du flux d’entrée. Le code de cette classe est donné ci-après, vous n’aurez les connaissances nécessaires pour la comprendre que vers la fin du module.

 
package complements.commeenc; 
2import java.io.*; 
/** 
 * Permet de lire des nombres et des chaines de caracteres 
 * au clavier. 
6 */ 
public class Console { 
  /** 
   * La console est un flot de caracteres bufferise. 
10   */ 
  private static BufferedReader console = 
          new BufferedReader(new InputStreamReader(System.in)); 
  /** 
14   * Affiche un message a lecran sans fin de ligne. 
   * @param prompt Message a afficher 
   */ 
  public static void printPrompt(final String prompt) { 
18        System.out.print(prompt + ""); 
        System.out.flush(); 
  } 
  /** 
22   * Lecture dune chaine de caracteres au clavier. La chaine ne 
   * contient pas le caractere fin de ligne’. En cas de fin de 
   * fichier ou derreur, la chaine retournee vaut <code>null</code>. 
   * @return La chaine lue 
26   */ 
  public static String readLine() { 
        String r = ""; 
        try { 
30          r = console.readLine(); 
        } catch(IOException e) { r = null; } 
        return r; 
  } 
34  /** 
   * Lecture dune chaine de caracteres au clavier avec affichage dun 
   * prompt. 
   *     @param prompt Message a afficher 
38   *     @return La chaine lue 
   *     @see #printPrompt(String) 
   *     @see #readLine() 
   */ 
42  public static String readLine(final String prompt) { 
        printPrompt(prompt); 
        return readLine(); 
  } 
46  /** 
   * Lecture dun entier au clavier. 
   *     @param prompt Message a afficher 
   *     @return Lentier lu 
50   *     @exception NumberFormatException en cas derreur 
   */ 
  public static int readInt(final String prompt) 
          throws NumberFormatException { 
54        printPrompt(prompt); 
        return Integer.valueOf(readLine().trim()).intValue(); 
  } 
  /** 
58   * Lecture dun double au clavier. 
   *     @param prompt Message a afficher 
   *     @return Le double lu 
   *     @exception NumberFormatException en cas derreur 
62   */ 
  public static double readDouble(final String prompt) 
          throws NumberFormatException { 
        printPrompt(prompt); 
66        return Double.valueOf(readLine().trim()).doubleValue(); 
  } 
}

Christian Bac, Denis Conan, Télécom SudParis, CSC 4002, Octobre 2015