IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Incrémentation en fonction du dernier chiffre


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Par défaut Incrémentation en fonction du dernier chiffre
    Bonjour à tous,

    Je cherche à écrire un bout de code qui me permettre de créer une série de nombre compris entre deux bornes et qui s'incrémente en fonction du dernier chiffre.
    Ma borne de début est 12345060 et ma borne de fin est 12345570.
    mon incrémentation est de 11 quand le dernier chiffre est 0-1-2-3-4 ou 5
    mon incrémentation est de 4 quand mon dernier chiffre est 6
    aucun nombre de ma série ne doit se terminer par 7-8 ou 9

    Je parviens à faire l'incrémentation de 11, mais je galère pour intégrer les autres conditions...Si quelqu'un a une piste à me suggérer, je suis preneur.
    J'ai commencé à apprendre java en début de semaine......Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int numeroDebut = 12345060, numeroFinal = 12345570, serie = 0;
     
            for (serie = numeroDebut; serie <= numeroFinal; serie += 11 )
            {
                System.out.println(serie);
            }

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Par défaut
    J'ai repris ton code et éssayer de faire quelquechose, il y a surement mieux...

    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
     
    public class essaiIncre {
     
    	public static void main(String [] args)
    	{
     
    		int numeroDebut = 12345060, numeroFinal = 12345570, serie = 0;
                    serie = numeroDebut;
                    // le -11 pour etre sur de ne jamais depasser la borne sup
    		while (serie <=  (numeroFinal-11) )
    		{
    			/*On convertit la serie en chaine de caractere
    			 * Pour pouvoir tester des caracteres au lieu des chiffres 
    			 */
     
    			String s = Integer.toString(serie);
    			//On teste le dernier "chiffre"
    			int tailleDuNombre = s.length();
    			//On recupere le dernier caractere
    			// je mets -1 parcequ'on commence à l'index zero...et pas un
    			char dc = s.charAt(tailleDuNombre-1);
     
    			//On le teste
    			if(dc=='0' | dc == '1' | dc == '2' | dc == '3' | dc == '4' | dc == '5')
    			{
    				//si la condition est verifiée on ajoute 11
    				serie += 11;
    			}
    			//sinon si on  a 6, on ajoute 4
    			else if(dc == '6')
    			{
    				serie += 4;
    			}
    			//Pas besoin de tester 7, 8, 9 on l'aura jamais...
    			// on affiche
    		System.out.println(serie);
    		} 
    	}
    }

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Par défaut Merci infiniment :-)
    Merci Abysr d'avoir pris le temps de répondre.
    Le code proposé fonctionne très bien.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui, mais pas très efficace.

    Pour obtenir le dernier chiffre d'un nombre il vaut mieux utiliser le reste d'une division par dix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int nombre = 123456;
    int dernierChiffre = nombre % 10;
    Pour repérer des chiffres de 0 à 5 il vaut mieux utiliser des inégalités que lister tous les cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(chiffre >= 0 && chiffre <= 5) {
    Et de toute façon ce n'était pas nécessaire, puisque 0 à 5 est le cas "de base" et le cas "particulier" est 6. Il suffit donc d'un simple if/else :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(chiffre == 6) {
      nombre += 4;
    } else {
      nombre += 11;
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Par défaut
    Merci Thelvin,

    mais cette solution ne semble pas fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int numeroDebut = 12345060, numeroFinal = 12345570, serie = 0;
    int dernierChiffre = serie % 10;
      for (serie = numeroDebut; serie <= numeroFinal;)
        {
    	if(dernierChiffre == 6)
    	   { 
    	    serie += 4;
    	   } 
    	else 
    	  {
    	   serie += 11;
    	   }
      System.out.println(serie);
       }
    La série obtenue est la suivante:

    12345071
    12345082
    12345093
    12345104
    12345115
    12345126
    12345137
    12345148
    12345159
    12345170
    etc......

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Uh, le dernier chiffre doit être calculé à chaque tour de boucle, bien sûr.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] ouverture de fichier en fonction des derniers chiffres de l'année
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/11/2009, 06h03
  2. Réponses: 1
    Dernier message: 30/05/2007, 18h19
  3. Réponses: 6
    Dernier message: 19/10/2006, 15h47
  4. Réponses: 2
    Dernier message: 18/07/2006, 11h40
  5. Récuperer les 2 derniers chiffres d'une année
    Par muquet dans le forum Débuter
    Réponses: 5
    Dernier message: 03/02/2006, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo