Je suis débutant en programmation java
j'ai fait ce petit programme qui vient après pour m’exercer histoire d'avoir la main (je pars du principe qu'aucune fonction n'intervient dans le main[ ]: parce que non connue)
le menu du programme donne les directives pour les unités de distance.
Mais j'ai l'impression que les traitements (l'algorithme) sont redondants:
Il n'y aurait-il pas un autre algorithme qui serait plus simple que ça.
Si vous découvrez aussi des bugs dans celui-ci dites le moi avant de me proposer le changement 'algorithme.
CODE SOURCE:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 
 
package test;
 
import java.util.Scanner;
 
/**
 *
 * @author free_01_binairy
 * C'est un programme qui convertit des distances en une autre (km,m,cm)
 * juste ces trois unites de distance.
 */
public class Test {
 
 
    public static void main(String[] args) {
        // TODO code application logic here
      System.out.println("CE PROGRAMME CONVERTIT DES DISTANCES");
 
      System.out.println( "\n");
      System.out.println("* *************************************************************** *");
      System.out.println("* *************************************************************** *");
      System.out.println("* *                                                                            * *");
      System.out.println("* *                 VOICI LE MENU                                  * *"); 
      System.out.println("* *                    1:km                                                * *");
      System.out.println("* *                    2:m                                                  * *");
      System.out.println("* *                    3:cm                                                * *");
      System.out.println("* *************************************************************** *");
      System.out.println("* **************************************************************  *");
 
       /*
      1m = 100cm // 1cm= 0.01;
      1km = 1000m //1m= 0.001m
      1km = 100000cm //1cm= 0.00001km
      */
 
     Scanner sc= new Scanner(System.in) ;
 
     System.out.println("Saisissez le nombre a convertir:");
     float num = sc.nextFloat(); 
     while(num!=0){ //Une facon d'echaper aux chaines de caracteres ou aux caracteres.
      sc.nextLine();
 
     System.out.println("Donnez son unite correspondant:");
     int from = sc.nextInt();
     sc.nextLine();
 
      System.out.println("Convertir en:");
     int to = sc.nextInt();
        switch (from) {
             case 1:
                 switch(to){
                     case 1:
                     System.out.println(num+ " km") ;
                         break;
                     case 2:
                         System.out.println(num*1000+" m");
                         break;
                     case 3:
                         System.out.println(num*100000+" cm");
                         break;
                     default:
                         System.out.println("Unite non prise en charge");
                    return ;     
 
                 }
             break;
             case 2:
                  switch(to){
                     case 1:
                     System.out.println(num*0.001+" km") ;
                         break;
                     case 2:
                         System.out.println(num+" m");
                         break;
                     case 3:
                         System.out.println(num*100+" cm");
                         break;
                     default:
                         System.out.println("Unite non prise en charge");
                      return;   
                  }
              break;
             case 3:
                  switch(to){
                     case 1:
                     System.out.println(num*0.00001+" km") ;
                         break;
                     case 2:
                         System.out.println(num*0.01+" m");
                         break;
                     case 3:
                         System.out.println(num+" cm");
                         break;
                     default:
                         System.out.println("Unite non prise en charge");
                     return;    
                  }
             default:
                 System.out.println("Unite non prise en charge");
 
        }
        return;  
       }
    }               
}
Merci de contribution.