Longeur string boucle while

Fermé
mat0608 Messages postés 13 Date d'inscription mercredi 9 novembre 2016 Statut Membre Dernière intervention 23 avril 2017 - Modifié le 23 avril 2017 à 12:22
 Utilisateur anonyme - 23 avril 2017 à 20:39
Bonjour,
je voudrais afficher une suite de mot par exemple UTILISATEURS EST, et afficher ces deux mots en fonction de la longeur du premier mot. Par exemple UTILISATEURS EST=11 caractères. UTILISATEURS *5 =55 caractères. La longeur de UTILISATEURS EST= 16 caractère. Afficher UTILISATEURS EST tant que UTILISATEURS EST est < 55 caractère.
UTILISATEURS EST (16) UTILISATEURS EST(32)UTILISATEURS EST(48)UTILISATEURS EST(64 fin de la boucle).
mon code fonctione mais stoppe à 2 repetitions et je ne sais pas pourquoi.

        static void Main(string[] args)
        {
            string texto1, texto2, texto3;
            Console.WriteLine("ecrire un mot");
            texto1 = Console.ReadLine();
            Console.WriteLine("ecrire un mot");
            texto2 = Console.ReadLine();
            string texto1M = texto1.ToUpper();
            string texto2M = texto2.ToUpper();
            Console.WriteLine("en majuscule:{0} {1}", texto1M, texto2M);
            int count = 0;
            int resultado = 0;
            int resultado1 = 0;
            int resultado2 = 0;
            texto3 = string.Concat(string.Concat(texto1M.Trim(), " " + texto2M.Trim(), " "));

            resultado = texto3.Length;
            resultado1 = texto1M.Length;
            resultado2 = texto2M.Length;
            Console.WriteLine("la longeur text3 est de {0}", resultado);
            Console.WriteLine("la longeur text1 est de {0}", resultado1);
            Console.WriteLine("la longeur text2 est de {0}", resultado2);
            Console.WriteLine("la longeur text1*5 est de {0}", resultado1 * 5);
            do
            {
                Console.Write(texto3);
                resultado = resultado + resultado;
                count++;
            }
            while (resultado <= resultado1 * 5);
            Console.WriteLine("repetitions{0}", count);
            Console.ReadKey();
              }
          }
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

Utilisateur anonyme
23 avril 2017 à 13:56
Rebonjour

texto3 = string.Concat(string.Concat(texto1M.Trim(), " " + texto2M.Trim(), " "));

Le concat 2 fois de suite, c'est un peut lourd

Alternative 1
            texto3 = texto1M.Trim() +" " + texto2M.Trim() + " ";


Atlernative 2
            texto3 = string.Format("{0} {1} ",Texto1M.Trim(),  texto2M.Trim());


En exécutant ton code en pas à pas, on constate que resultado1 vaut 12 donc fois 5, ça fait 60, et comme resultado vaut 17, ça fait 2 tours
A la fin du premier c'est 17+ 17 : 34, ok ça passe
A la fin du second c'est 34 + 34 : 68, ça passe plus.
0
mat0608 Messages postés 13 Date d'inscription mercredi 9 novembre 2016 Statut Membre Dernière intervention 23 avril 2017
23 avril 2017 à 15:23
oui effectivement resultado = resultado + resultado; n´est pas correcte. Mais je cherche encore comment faire pour que la boucle ajoute 17 en non 34.
Si tu aurais un indice?
0
Utilisateur anonyme
23 avril 2017 à 15:26
Une variable de plus
0
mat0608 Messages postés 13 Date d'inscription mercredi 9 novembre 2016 Statut Membre Dernière intervention 23 avril 2017
23 avril 2017 à 15:42
Je seche!! je ne dois pas ajouter la variable au bon endroit!
do
{
Console.Write(texto3);
resultado3=resultado++;
count++;
}
while (resultado3 <= resultado1 * 5);
0
Utilisateur anonyme
23 avril 2017 à 15:47
Alors déjà le code que tu montres n'ajoutes pas 17, retourne relsutado que tu incrémentes à chaque tour, donc 17, 18, 19 etc...

Et à la réflexion, tu n'as pas besoin d'une variable de plus, en effet tu as bien réussi à fournir le premier 17 à resultado.
0
mat0608 Messages postés 13 Date d'inscription mercredi 9 novembre 2016 Statut Membre Dernière intervention 23 avril 2017
23 avril 2017 à 16:40
je ne vois pas comment faire..
//sachant
resultado=texto3.Length ( text1+text2)
resultado1= texto1M.Length
//
do
{
Console.Write(texto3);
resultado = resultado + resultado;
count++;
}
while (resultado <= resultado1 * 5);
0