Bonsoir,
j'ai écrit ce condition if, mais ce dernier donne erreur
!(A/100) est souligné
veuillez m'aidez svpif (( B==(A/400) || !(A/100) && (A/4) ))
Version imprimable
Bonsoir,
j'ai écrit ce condition if, mais ce dernier donne erreur
!(A/100) est souligné
veuillez m'aidez svpif (( B==(A/400) || !(A/100) && (A/4) ))
Dans ton test tu mélange des int ou float avec des boolean
Un peu comme si tu comparais des mètres et des kilogrammes
Dis nous ce que tu veux sous la forme : je veux tester si B est égal à A/400, ou B n'est pas égal à A/100 ..... on te feras ton test
Donnes nous aussi le type de A et B int float...
mon algorithme est la suivanteCode:
1
2
3
4
5
6
7
8
9
10 System.out.println("Entrez le numéro du jour:"); Scanner valeur=new Scanner(System.in); int J=valeur.nextInt(); System.out.println("Entrez le numéro du mois:"); int M=valeur.nextInt(); System.out.println("Entrez l'année:"); int A=valeur.nextInt(); int VM, VJ,B;
B= A divisé par 400 ou (non(A divisé par 100) et A divisé par 4
JMAX=0;
VM = M>=1 et M=>12
si VM alors
si M=2 et B alors
JMAX=29
sinonsi M=2 alors
JMAX =28
sinonsi M=4 ou M=6 ou M=9 ou M=11 alors
JMAX=30
sinon
JMAX=31
finsi
VJ= J>=1 et J=< JMAX
finsi
ainsi de suite;
mon prg consiste, utilisateur donne une date et le prg dit que le date est valide ou pas
Hello,
l'opérateur de division, comme tu as certainement dû le voir en de nombreuses occasions, calcule la division des deux nombres à sa droite et à sa gauche. Le résultat de cet opérateur est donc un troisième nombre, la division.
De cela, on peut déduire que son résultat n'est pas un booléen, et notamment pas un indicateur de si quelque chose est arithmétiquement divisible par autre chose.
Pour savoir si un nombre est divisible par un autre, on peut regarder si le reste de la division euclidienne est zéro :
Exemples :Code:if((a%b) == 0)
Code:
1
2
3
4
5
6
7
8
9
10
11 if(3%2 == 0) { System.out.println("3 est divisible par 2"); } else { System.out.println("3 n'est PAS divisible par 2"); } if(4%2 == 0) { System.out.println("4 est divisible par 2"); } else { System.out.println("4 n'est PAS divisible par 2"); }
c'est pas ce que marc te demandeCitation:
B= A divisé par 400 ou (non(A divisé par 100) et A divisé par 4
tu donne A et B en int mais tu retourne plus ou moins dun boolean :( cest pas logique
mais pour faire des opérations avec une date tu a l'objet Calendar en Java Standard la tu au moins essayer tu fais tout avec ;)
en essayant comme ceci
j'ai un message:Code:
1
2 if(B==((A/4) && !(A%100)) ||(A/400))
multiple markers at this line
operator ! est undefined for the argument type int
je comprend que operator ! undefined pour argument type int
quel est la solution svp?
Hello again,
La solution est de faire ce que j'ai dit et de ne pas faire autre chose que ce que j'ai dit.
Notamment, ton code ne contient aucun 0 et aucun ==
Il est donc évident que ça ne ressemble pas à mon exemple.
vous voulez que je fasse comme ceci?
if ( (A%400) || (!(A%100)==0) && (A%4) )
Disons que c'est un début..
A ton avis, quel est le type de la donnée renvoyé par l'opération "A%400" ? Et en quoi/comment ce type peut être utilisé dans un if(..) ?
Nous, personnellement, on ne veut rien... :mouarf:
Ton expression est fausse, suffit de la passer dans le compilo pour le voir directement. Rien que le
ne marchera pas, le reste même pas besoin d'y regarder.Code:if (A%400)
est ce que c'est bien ça
if ( (A%400==0) || (!(A%100==0) && (A%4==0) ) )
Bah ça me parait déjà mieux non ? T'en penses quoi toi ? Il te dit quoi le compilo ?
Pense quand même à mettre les parenthèse qui vont bien dans un soucis de compréhension.
Code:( (i%4) == 0 ) && ...
Oui je confirme !!!! et il y a une FAQ Java qui traite précisément de ton soucis : vérifier qu'une date est valide.Citation:
mais pour faire des opérations avec une date tu a l'objet Calendar en Java Standard la tu au moins essayer tu fais tout avec
Je ne te mets pas le raccourci, je te laisse la trouver