Longeur string boucle while

mat0608 Messages postés 13 Statut Membre -  
 Utilisateur anonyme -
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. Utilisateur anonyme
     
    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
    1. mat0608 Messages postés 13 Statut Membre
       
      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
    2. Utilisateur anonyme
       
      Une variable de plus
      0
    3. mat0608 Messages postés 13 Statut Membre
       
      Je seche!! je ne dois pas ajouter la variable au bon endroit!
      do
      {
      Console.Write(texto3);
      resultado3=resultado++;
      count++;
      }
      while (resultado3 <= resultado1 * 5);
      0
    4. Utilisateur anonyme
       
      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
    5. mat0608 Messages postés 13 Statut Membre
       
      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