Topic : « [ALERTE JS] Je vois pas l'erreur »

Avatar de KEK KEK
//voilà un script destiné à donner l'heure qu'il sera dans une seconde à l'utilisateur

var heure = Number(prompt("Quelle heure est-il ?"))
var minute = Number(prompt("Quelle minute est-il ?"))
var seconde = Number(prompt("Quelle seconde est-il ?"))

if ((seconde >= 0) && (seconde < 59)) {
seconde = seconde++
} else if ((seconde === 59) && (minute >= 0) && (minute < 59)) {
seconde = 0
minute = minute++
} else if ((seconde === 59) && (minute === 59) && (heure >= 0) && (heure < 23)) {
seconde = 0
minute = 0
heure = heure++
} else if ((seconde === 59) && (minute === 59) && (heure === 23)) {
seconde = 0
minute = 0
heure = 0
} else {
alert("Entrée invalide")
}

heure = String(heure)
minute = String(minute)
seconde = String(seconde)

alert("Il sera " + heure + "h " + minute + "m " + seconde + "s dans une seconde :')")



Et si j'entre 15h 15m 15s, il me sort 15h 15m 15s https://image.noelshack.com/minis/2017/16/1492438864-jesus47.png
#2889846
Avatar de Danger Danger
Prenons ton exemple, tu lui donnes seconde = 15 donc il fait le premier if qui se demande si c'est compris entre 0 et 58, c'est oui donc ok t'incrémentes.

Le 2ème c'est sinon si seconde = 59 et minute = entre 0 et 58 alors tu incrémentes minute.

Oui mais si seconde = entre 0 et 58 && que minute aussi y a pas d'option pour ça dans ton code.
Avatar de KEK KEK
Citation de Danger
Prenons ton exemple, tu lui donnes seconde = 15 donc il fait le premier if qui se demande si c'est compris entre 0 et 58, c'est oui donc ok t'incrémentes.
Le 2ème c'est sinon si seconde = 59 et minute = entre 0 et 58 alors tu incrémentes minute.
Oui mais si seconde = entre 0 et 58 && que minute aussi y a pas d'option pour ça dans ton code.
Ben osef de ça, si seconde = entre 0 et 58 et que minute aussi, je change que seconde, donc

if ((seconde >= 0) && (seconde < 59)) {
seconde = seconde++

fait bien le taf :question:
Avatar de KEK KEK
Citation de Oriflamme
Explique ce que tu veux faire avec ton script j'ai du mal à piger
Si tu entres 15h 15m 15s, il sort 15h 15m 16s
Si tu entre 23h 59m 59s, il sort 0h 0m 0s
Avatar de Danger Danger
https://jsfiddle.net/gpb0nx2m/
Apercite https://jsfiddle.net/gpb0nx2m/


La syntaxe var++ s'utilise sans affectation, donc tu mets directement var++;

Si tu veux l'utiliser comme tu l'as fait il faut mettre var = ++var mais c'est plus long et le ++ est fait justement pour éviter de faire une affectation redondante var = var + 1, autant faire la méthode ci-dessus.

J'ai vu aussi que t'avais mis aucun ; en fin de ligne, pense à le faire des fois ça peut merder à cause de ça.

(Run en haut à gauche pour lancer le programme si ça se lance pas auto).
#2891935
Avatar de KEK KEK
La syntaxe var++ s'utilise sans affectation, donc tu mets directement var++
Ouais, var++ incrémente var mais renvoie la valeur var
Donc var = var++ associe à var la valeur var
Et n'incrémente pas var
On le voit bien avec ça :

seconde = 10
alert(seconde)
alert(seconde++)
alert(seconde)
seconde = 10
alert(seconde)
alert(++seconde)
alert(seconde)


J'ai vu aussi que t'avais mis aucun ; en fin de ligne, pense à le faire des fois ça peut merder à cause de ça
Ben jusqu'à maintenant j'en ai mit aucun :|
Ca sert à quoi ?
#2892409
Liste des sujets