Transformer des chiffres en symbole et l'afficher

-
Bonjour,
Voilà je souhaite à partir d'une variable (par exemple $nbEtoile) ayant pour valeur un chiffre entier ( comme 4 par ex) renvoyer le nombre correspondant mais en symbole ( par ex "*")
soit pour __$nbEtoile = 4 __ avoir affiché sur l'écran__ $nbEtoile = ****

j'ai essayé avec cette boucle :

$nbEtoile = 4;

while ($nbEtoile <= 4)
{
$nbEtoile = "*";
echo $nbEtoile;
$nbEtoile++;
}


Malheureusement ce quis'affiche est une infinité d'étoile et non 4 étoile...
Pouvez - vous m'aider ?
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
135
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
17 novembre 2019
2
1
Merci
Salut,

Oui, effectivement il y a un problème car, visiblement vous attribuez (si vous êtes prof ou de la police, ajouter des "vous") la valeur 4 au début…

 $nbEtoile = 4; \\\ici variable chaîne ou entière?

while ($nbEtoile <= 4) ;\\\ ici $nbEtoile = 4+n donc jamais 0 à 4.
{
$nbEtoile = "*"; \\\ $nbEtoile=4="*" !!!
echo $nbEtoile;
$nbEtoile++; \\\ $nbEtoile="5" ?
}


Non, deux variables, une de comptage [nbEtoile], et une de variable string [chaîne:$CHRetoiles] !

Tu fais une boucle For … de 1 à nbEtoile…
Dans laquelle tu places une variable $CHRetoiles=$CHRetoiles+"*"; (vide au début)

Puis affichage de $CHRetoiles en sortie de boucle.

Je te laisse te familiariser avec la fonction de boucle "for"
et les initialisations des variables chaînes et des nombres décimaux.

Poste ton résultat, et n'oublies pas de cliquer "résolu" sur ton message principle.
Sinon, avec While, c'est aussi possible, mais avec un décomptage du "compteur étoile", et en testant s'il est positif avec un "nbEtoile--;"
et un $CHRetoiles=$CHRetoiles+"*"; à chaque boucle.

Nota: les codes margés, c'est plus beau…
Amuse-toi bien.

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS SourceS

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Merci pour ton conseil ! j'ai tenté ceci :
<?php

$nbStar=1;
$chrStar = "*";

for ($nbStar = 1; $nbStar <= 4; $chrStar = $chrStar + "*")
{
echo $chrStar;
}
mais en affichage j'ai "*" et une infinité de "0"...
re en fait j'ai compris j'avais fait une petite erreur...
<?php

$nb_Star=1;
$chrStar = "*";

for ($nb_Star = 1; $nb_Star <= 4; $nb_Star++ ) \\\à l'incrémentation, j'ai mis la mauvaise variable...
{
echo $chrStar;
}

\\\et là j'ai autant d'étoiles que dans la condition...Merci encore !
JeuDuTaquin
Messages postés
135
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
17 novembre 2019
2 > adhessa -
Oui, c'est presque ça!
Au visuel, tu as des étoiles, mais ce résultat n'est pas mémorisé.
Ici, tu ressorts une variable que tu pourras réutiliser après…
<?php 

$nb_Star=3; \\\ nombre d'étoiles désiré.
$chrStar = "*"; \\\ Caractère à ajouter à chaque boucle.
$Resultat =""; \\\ variable pour stocker les étoiles.

for ($Loop_Star = 0; Loop_Star < $nb_Star; $Loop_Star++ ) \\\ Si le compteur < au nombre d'étoiles désiré.
{
$Resultat = $Resultat + $chrStar;
}
echo $Resultat;


Voilà.
N'oublie pas d'affecter une seul variable ($variable), pour une utilisation.
Toute variable utilisée, perd sa valeur. Il faut donc initialiser une variable à chaque fois que possible.
Commenter la réponse de JeuDuTaquin
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58
1
Merci
echo str_pad("", $nbEtoiles, "*")

Fonctionnerai sans dout aussi et sans boucle

sur le code de base ; un soci dalo e effet de par la réutilisation d'une même variable

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS SourceS

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Merci pour ton aide ! je n'ai pas réussi à l'utiliser car je suis néophyte j'ai testé avec ce que j'avais appris mais ça m'a mis un message d'erreur...
Mais du coup ça m'a quand même fait avancer car j'ai trouvé ça grâce à votre soutient à tous les deux :
<?php

$nb_Star=1;
$chrStar = "*";

for ($nb_Star = 1; $nb_Star <= 4; $nb_Star++ )
{
echo $chrStar;
}
et le nombre d'étoiles apparaissant correspond à ce que je demande dans la partie condition...je pense que ça devrait être bon...
Commenter la réponse de Renfield