Longeur string boucle while

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

  1. 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.
    1. 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?
    2. Une variable de plus
    3. Je seche!! je ne dois pas ajouter la variable au bon endroit!
      do
      {
      Console.Write(texto3);
      resultado3=resultado++;
      count++;
      }
      while (resultado3 <= resultado1 * 5);
    4. 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.
    5. 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);