/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Fevrier 2005                   */

public class ValeurMinimaleEnConsole {

  /* Fonction de calcul du minimum de deux entiers        */

  public static int minimum(int a,int b) {
    if ( a < b )
      return(a);
      else
      return(b);
  }

  /* Fonction intermediaire d'illustration de la saisie   */
  /* clavier d'une suite d'entiers jusqu'a introduction   */
  /* de la valeur 0                                       */

  public static void saisieSuiteEntiers() {
  /* Variable support des valeurs saisies                      */
    int v;
    Console.out.println("Tapez vos valeurs (0 pour arreter)");
  /* Premiere saisie                                           */
    v = Integer.valueOf(Console.in.readLine()).intValue();
  /* Tant que la derniere valeur saisie est differente de 0    */
  /* La derniere instruction de cette boucle tant que devra    */
  /* etre une nouvelle saisie pour la condition d'arret        */
  /* porte immediatement sur cette nouvelle valeur             */
    while ( v != 0 ) {
  /* Saisie d'une nouvelle valeur                              */
      v = Integer.valueOf(Console.in.readLine()).intValue(); }
  }

  /* Fonction de saisie clavier d'une suite d'entiers     */
  /* jusqu'a introduction de la valeur 0 et de calcul     */
  /* de la valeur minimale saisie (0 excepte)             */
  /* 0 retourne indique que la premiere valeur saisie     */
  /* etait 0                                              */

  public static int saisieSuiteEntiersEtRechercheMinimum() {
  /* Variable support de la valeur minimale saisie        */
    int min;
  /* Variable support des valeurs saisies                      */
    int v;
  /* Premiere saisie                                           */
    Console.out.println("Tapez vos valeurs (0 pour arreter)");
    v = Integer.valueOf(Console.in.readLine()).intValue();
  /* Initialisation de min a la premiere valeur saisie         */
    min = v;
  /* Tant que la derniere valeur saisie est differente de 0    */
  /* La derniere instruction de cette boucle tant que devra    */
  /* etre une nouvelle saisie pour la condition d'arret        */
  /* porte immediatement sur cette nouvelle valeur             */
    while ( v != 0 ) {
  /* Pour chaque valeur v saisie, min est affecte avec         */
  /* la valeur minimum de v et du minimum calcule              */
  /* jusqu'alors                                               */
      min = minimum(v,min);
  /* Saisie d'une nouvelle valeur                              */
      v = Integer.valueOf(Console.in.readLine()).intValue(); }
    return(min);
  }

  /* Fonction principale                                  */

  public static void main(String [] args) {
    Console.setTitle("ValeurMinimale");
    int mini;
    Console.out.println("La valeur minimum de  3 et 5 est "+minimum(3,5));
    Console.out.println("La valeur minimum de -4 et 2 est "+minimum(-4,2));
    Console.out.println();
    saisieSuiteEntiers();
    Console.out.println();
    mini = saisieSuiteEntiersEtRechercheMinimum();
    Console.out.println("La valeur minimum saisie est "+mini);
  }
}