Bonjour a tous,
Mon probleme est dans le titre.
J'ai un switch case et a l'interieur est il "permis" de sortir d'un
case par un return ( le switch case est bien sur dans une fonction)
A la compile ( gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5))
je n'ai aucun message d'avertissement. Mais je voudrais etre sur que
c'est correcte. Rien vu a ce sujet.
Merci de vos reponses.
gil
"Emmanuel Delahaye" wrote in message news:439160a6$0$10013$
Oui, et vous seriez ainsi revenu sur le thème, le sujet même de l'exemple du PO étant de ne point nous laisser le choix dans la date.
Pas mal...
D'ailleurs il est évident que l'informaticienne qui a le choix dans la date, compile le C.
-- Chqrlie.
Charlie Gordon
"Albert" wrote in message news:43907f3c$0$19691$
Bonjour a tous, Mon probleme est dans le titre. J'ai un switch case et a l'interieur est il "permis" de sortir d'un case par un return ( le switch case est bien sur dans une fonction) A la compile ( gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) je n'ai aucun message d'avertissement. Mais je voudrais etre sur que c'est correcte. Rien vu a ce sujet. Merci de vos reponses. gil
Bonsoir a tous, je tiens a vous remercier pour vos reponses, bien que 95% ne correspondaient pas a la question primaire : "returun dans un switch case" et certainement pas a l'algo ( qui fonctionne tres bien).
Donc je me retire de la liste en vous souhaitant une discussion tres ciblee qui vous fera plaisir et une excellente fin de semaine.
Note quand meme qu'il manque un paquet de break dans ton switch.
-- Chqrlie.
"Albert" <albert@hall.org> wrote in message
news:43907f3c$0$19691$8fcfb975@news.wanadoo.fr...
Bonjour a tous,
Mon probleme est dans le titre.
J'ai un switch case et a l'interieur est il "permis" de sortir d'un
case par un return ( le switch case est bien sur dans une fonction)
A la compile ( gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5))
je n'ai aucun message d'avertissement. Mais je voudrais etre sur que
c'est correcte. Rien vu a ce sujet.
Merci de vos reponses.
gil
Bonsoir a tous,
je tiens a vous remercier pour vos reponses, bien que 95% ne
correspondaient pas a la question primaire : "returun dans un switch
case" et certainement pas a l'algo ( qui fonctionne tres bien).
Donc je me retire de la liste en vous souhaitant une discussion tres
ciblee qui vous fera plaisir et une excellente fin de semaine.
Note quand meme qu'il manque un paquet de break dans ton switch.
Bonjour a tous, Mon probleme est dans le titre. J'ai un switch case et a l'interieur est il "permis" de sortir d'un case par un return ( le switch case est bien sur dans une fonction) A la compile ( gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) je n'ai aucun message d'avertissement. Mais je voudrais etre sur que c'est correcte. Rien vu a ce sujet. Merci de vos reponses. gil
Bonsoir a tous, je tiens a vous remercier pour vos reponses, bien que 95% ne correspondaient pas a la question primaire : "returun dans un switch case" et certainement pas a l'algo ( qui fonctionne tres bien).
Donc je me retire de la liste en vous souhaitant une discussion tres ciblee qui vous fera plaisir et une excellente fin de semaine.
Note quand meme qu'il manque un paquet de break dans ton switch.
-- Chqrlie.
Pierre Maurette
"Emmanuel Delahaye" wrote in message news:439160a6$0$10013$
Oui, et vous seriez ainsi revenu sur le thème, le sujet même de l'exemple du PO étant de ne point nous laisser le choix dans la date.
Pas mal...
D'ailleurs il est évident que l'informaticienne qui a le choix dans la date, compile le C. C'est velu, votre humour ...
;-)
-- Pierre Maurette
"Emmanuel Delahaye" <emdel@YOURBRAnoos.fr> wrote in message
news:439160a6$0$10013$79c14f64@nan-newsreader-06.noos.net...
Oui, et vous seriez ainsi revenu sur le thème, le sujet même de
l'exemple du PO étant de ne point nous laisser le choix dans la date.
Pas mal...
D'ailleurs il est évident que l'informaticienne qui a le choix dans la date,
compile le C.
C'est velu, votre humour ...
"Emmanuel Delahaye" wrote in message news:439160a6$0$10013$
Oui, et vous seriez ainsi revenu sur le thème, le sujet même de l'exemple du PO étant de ne point nous laisser le choix dans la date.
Pas mal...
D'ailleurs il est évident que l'informaticienne qui a le choix dans la date, compile le C. C'est velu, votre humour ...
;-)
-- Pierre Maurette
Pierre Maurette
"Albert" wrote in message news:43907f3c$0$19691$
Bonjour a tous, Mon probleme est dans le titre. J'ai un switch case et a l'interieur est il "permis" de sortir d'un case par un return ( le switch case est bien sur dans une fonction) A la compile ( gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) je n'ai aucun message d'avertissement. Mais je voudrais etre sur que c'est correcte. Rien vu a ce sujet. Merci de vos reponses. gil
Bonsoir a tous, je tiens a vous remercier pour vos reponses, bien que 95% ne correspondaient pas a la question primaire : "returun dans un switch case" et certainement pas a l'algo ( qui fonctionne tres bien).
Donc je me retire de la liste en vous souhaitant une discussion tres ciblee qui vous fera plaisir et une excellente fin de semaine.
Note quand meme qu'il manque un paquet de break dans ton switch. Euh. Le break après le return, c'est pas un peu gâcher ?
-- Pierre Maurette
"Albert" <albert@hall.org> wrote in message
news:43907f3c$0$19691$8fcfb975@news.wanadoo.fr...
Bonjour a tous,
Mon probleme est dans le titre.
J'ai un switch case et a l'interieur est il "permis" de sortir d'un
case par un return ( le switch case est bien sur dans une fonction)
A la compile ( gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5))
je n'ai aucun message d'avertissement. Mais je voudrais etre sur que
c'est correcte. Rien vu a ce sujet.
Merci de vos reponses.
gil
Bonsoir a tous,
je tiens a vous remercier pour vos reponses, bien que 95% ne
correspondaient pas a la question primaire : "returun dans un switch
case" et certainement pas a l'algo ( qui fonctionne tres bien).
Donc je me retire de la liste en vous souhaitant une discussion tres
ciblee qui vous fera plaisir et une excellente fin de semaine.
Note quand meme qu'il manque un paquet de break dans ton switch.
Euh. Le break après le return, c'est pas un peu gâcher ?
Bonjour a tous, Mon probleme est dans le titre. J'ai un switch case et a l'interieur est il "permis" de sortir d'un case par un return ( le switch case est bien sur dans une fonction) A la compile ( gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) je n'ai aucun message d'avertissement. Mais je voudrais etre sur que c'est correcte. Rien vu a ce sujet. Merci de vos reponses. gil
Bonsoir a tous, je tiens a vous remercier pour vos reponses, bien que 95% ne correspondaient pas a la question primaire : "returun dans un switch case" et certainement pas a l'algo ( qui fonctionne tres bien).
Donc je me retire de la liste en vous souhaitant une discussion tres ciblee qui vous fera plaisir et une excellente fin de semaine.
Note quand meme qu'il manque un paquet de break dans ton switch. Euh. Le break après le return, c'est pas un peu gâcher ?
-- Pierre Maurette
Charlie Gordon
"Pierre Maurette" wrote in message news:
"Emmanuel Delahaye" wrote in message news:439160a6$0$10013$
Oui, et vous seriez ainsi revenu sur le thème, le sujet même de l'exemple du PO étant de ne point nous laisser le choix dans la date.
Pas mal...
D'ailleurs il est évident que l'informaticienne qui a le choix dans la date, compile le C. C'est velu, votre humour ...
oui, mais elle, ça la rase ;-)
"Pierre Maurette" <maurettepierre@wanadoo.fr> wrote in message
news:mn.2cb47d5cddbf4c89.31483@laposte.net...
"Emmanuel Delahaye" <emdel@YOURBRAnoos.fr> wrote in message
news:439160a6$0$10013$79c14f64@nan-newsreader-06.noos.net...
Oui, et vous seriez ainsi revenu sur le thème, le sujet même de
l'exemple du PO étant de ne point nous laisser le choix dans la date.
Pas mal...
D'ailleurs il est évident que l'informaticienne qui a le choix dans la date,
compile le C.
C'est velu, votre humour ...
"Emmanuel Delahaye" wrote in message news:439160a6$0$10013$
Oui, et vous seriez ainsi revenu sur le thème, le sujet même de l'exemple du PO étant de ne point nous laisser le choix dans la date.
Pas mal...
D'ailleurs il est évident que l'informaticienne qui a le choix dans la date, compile le C. C'est velu, votre humour ...
oui, mais elle, ça la rase ;-)
Charlie Gordon
"Pierre Maurette" wrote in message news: ...
Note quand meme qu'il manque un paquet de break dans ton switch. Euh. Le break après le return, c'est pas un peu gâcher ?
Je reprends le code de l'OP ci-dessous:
int test_saisie( int day, int month, int year ) { /* cas special de l'annee et mois du changement : on retourne Faux ( + tard) */ if (year == Gregoire && month == 9 && day > 2) { printf("nAttention annee, mois et jour >2 du passage Julien -> Gregorien !n"); printf("---------> On verra plus tard <--------------nn"); return(Faux); }
/* c'est un 29 non fevrier donc saisie plausible = Vrai */ if ((day == 29 ) && ( month != 2)) return(Vrai);
switch (day) { case 29: if (( year%4 == 0 && year%100 != 0) || (year%4 ==0 && (year%100 == 0 && year%400 == 0))) { printf("nL'annee %d est bien Bissextille !!nn",year);
===== bissextile sans majuscule et avec un seul l de plus il faudrait tester si le siecle est postérieur à la réforme Grégorienne contrairement à ce que fait ce code, 1500 était bien bissextile par exemple.
return(Vrai); } else { printf("nAnnee non bissextille !!nn"); return(Faux); }
case 30: if ( day == 30 && month == 2)
===== le test sur day est redondant.
{ printf("n Le mois de %s n'a pas 30 jours !!!nn",t_mois[month-1]); return(Faux); }
===== ICI il manque un break; la fonction va refuser les 30 avril, juin, septembre et novembre :-(
case 31: if ((month == 2) || (month == 4) || (month == 6) || (month == 9) || (month =)) { printf("nLe mois de %s n'a pas 31 jours !!!nn",t_mois[month-1]); return(Faux); }
====== ICI aussi, mais pour éviter un bug si ce switch venait à être étendu avec d'autres case ou un default par la suite.
} /* les autres cas sont ok */ return(Vrai); }
On ne teste pas les bornes pour day et month : il faudrait refuser (day < 1 || day > 31) et (month < 1 || month > 12).
-- Chqrlie.
"Pierre Maurette" <maurettepierre@wanadoo.fr> wrote in message
news:mn.2cb67d5cb2f9bca8.31483@laposte.net...
...
Note quand meme qu'il manque un paquet de break dans ton switch.
Euh. Le break après le return, c'est pas un peu gâcher ?
Je reprends le code de l'OP ci-dessous:
int test_saisie( int day, int month, int year )
{
/* cas special de l'annee et mois du changement : on retourne Faux (
+ tard) */
if (year == Gregoire && month == 9 && day > 2)
{
printf("nAttention annee, mois et jour >2 du passage Julien ->
Gregorien !n");
printf("---------> On verra plus tard <--------------nn");
return(Faux);
}
/* c'est un 29 non fevrier donc saisie plausible = Vrai */
if ((day == 29 ) && ( month != 2))
return(Vrai);
switch (day)
{
case 29:
if (( year%4 == 0 && year%100 != 0) || (year%4 ==0 && (year%100
== 0 && year%400 == 0)))
{
printf("nL'annee %d est bien Bissextille !!nn",year);
===== bissextile sans majuscule et avec un seul l
de plus il faudrait tester si le siecle est postérieur à la réforme Grégorienne
contrairement à ce que fait ce code, 1500 était bien bissextile par exemple.
return(Vrai);
}
else
{
printf("nAnnee non bissextille !!nn");
return(Faux);
}
case 30:
if ( day == 30 && month == 2)
===== le test sur day est redondant.
{
printf("n Le mois de %s n'a pas 30 jours !!!nn",t_mois[month-1]);
return(Faux);
}
===== ICI il manque un break; la fonction va refuser les 30 avril, juin,
septembre et novembre :-(
case 31:
if ((month == 2) || (month == 4) || (month == 6) || (month == 9)
|| (month =))
{
printf("nLe mois de %s n'a pas 31 jours !!!nn",t_mois[month-1]);
return(Faux);
}
====== ICI aussi, mais pour éviter un bug si ce switch venait à être étendu avec
d'autres case ou un default par la suite.
}
/* les autres cas sont ok */
return(Vrai);
}
On ne teste pas les bornes pour day et month : il faudrait refuser (day < 1 ||
day > 31) et (month < 1 || month > 12).
Note quand meme qu'il manque un paquet de break dans ton switch. Euh. Le break après le return, c'est pas un peu gâcher ?
Je reprends le code de l'OP ci-dessous:
int test_saisie( int day, int month, int year ) { /* cas special de l'annee et mois du changement : on retourne Faux ( + tard) */ if (year == Gregoire && month == 9 && day > 2) { printf("nAttention annee, mois et jour >2 du passage Julien -> Gregorien !n"); printf("---------> On verra plus tard <--------------nn"); return(Faux); }
/* c'est un 29 non fevrier donc saisie plausible = Vrai */ if ((day == 29 ) && ( month != 2)) return(Vrai);
switch (day) { case 29: if (( year%4 == 0 && year%100 != 0) || (year%4 ==0 && (year%100 == 0 && year%400 == 0))) { printf("nL'annee %d est bien Bissextille !!nn",year);
===== bissextile sans majuscule et avec un seul l de plus il faudrait tester si le siecle est postérieur à la réforme Grégorienne contrairement à ce que fait ce code, 1500 était bien bissextile par exemple.
return(Vrai); } else { printf("nAnnee non bissextille !!nn"); return(Faux); }
case 30: if ( day == 30 && month == 2)
===== le test sur day est redondant.
{ printf("n Le mois de %s n'a pas 30 jours !!!nn",t_mois[month-1]); return(Faux); }
===== ICI il manque un break; la fonction va refuser les 30 avril, juin, septembre et novembre :-(
case 31: if ((month == 2) || (month == 4) || (month == 6) || (month == 9) || (month =)) { printf("nLe mois de %s n'a pas 31 jours !!!nn",t_mois[month-1]); return(Faux); }
====== ICI aussi, mais pour éviter un bug si ce switch venait à être étendu avec d'autres case ou un default par la suite.
} /* les autres cas sont ok */ return(Vrai); }
On ne teste pas les bornes pour day et month : il faudrait refuser (day < 1 || day > 31) et (month < 1 || month > 12).
-- Chqrlie.
Albert
"Pierre Maurette" wrote in message news:
....
Note quand meme qu'il manque un paquet de break dans ton switch.
Euh. Le break après le return, c'est pas un peu gâcher ?
Je reprends le code de l'OP ci-dessous:
int test_saisie( int day, int month, int year ) { /* cas special de l'annee et mois du changement : on retourne Faux ( + tard) */ if (year == Gregoire && month == 9 && day > 2) { printf("nAttention annee, mois et jour >2 du passage Julien -> Gregorien !n"); printf("---------> On verra plus tard <--------------nn"); return(Faux); }
/* c'est un 29 non fevrier donc saisie plausible = Vrai */ if ((day == 29 ) && ( month != 2)) return(Vrai);
switch (day) { case 29: if (( year%4 == 0 && year%100 != 0) || (year%4 ==0 && (year%100 == 0 && year%400 == 0))) { printf("nL'annee %d est bien Bissextille !!nn",year);
===== bissextile sans majuscule et avec un seul l
Je garde la majuscule et enveleve un l !!
de plus il faudrait tester si le siecle est postérieur à la réforme Grégorienne contrairement à ce que fait ce code, 1500 était bien bissextile par exemple. Fait ailleurs
return(Vrai); } else { printf("nAnnee non bissextille !!nn"); return(Faux); }
case 30: if ( day == 30 && month == 2)
===== le test sur day est redondant.
Corrige ...
{ printf("n Le mois de %s n'a pas 30 jours !!!nn",t_mois[month-1]); return(Faux); }
===== ICI il manque un break; la fonction va refuser les 30 avril, juin, septembre et novembre :-(
case 31: if ((month == 2) || (month == 4) || (month == 6) || (month == 9) || (month =)) { printf("nLe mois de %s n'a pas 31 jours !!!nn",t_mois[month-1]); return(Faux); }
====== ICI aussi, mais pour éviter un bug si ce switch venait à être étendu avec d'autres case ou un default par la suite.
} /* les autres cas sont ok */ return(Vrai); }
On ne teste pas les bornes pour day et month : il faudrait refuser (day < 1 || day > 31) et (month < 1 || month > 12).
Fait ailleur
gil
"Pierre Maurette" <maurettepierre@wanadoo.fr> wrote in message
news:mn.2cb67d5cb2f9bca8.31483@laposte.net...
....
Note quand meme qu'il manque un paquet de break dans ton switch.
Euh. Le break après le return, c'est pas un peu gâcher ?
Je reprends le code de l'OP ci-dessous:
int test_saisie( int day, int month, int year )
{
/* cas special de l'annee et mois du changement : on retourne Faux (
+ tard) */
if (year == Gregoire && month == 9 && day > 2)
{
printf("nAttention annee, mois et jour >2 du passage Julien ->
Gregorien !n");
printf("---------> On verra plus tard <--------------nn");
return(Faux);
}
/* c'est un 29 non fevrier donc saisie plausible = Vrai */
if ((day == 29 ) && ( month != 2))
return(Vrai);
switch (day)
{
case 29:
if (( year%4 == 0 && year%100 != 0) || (year%4 ==0 && (year%100
== 0 && year%400 == 0)))
{
printf("nL'annee %d est bien Bissextille !!nn",year);
===== bissextile sans majuscule et avec un seul l
Je garde la majuscule et enveleve un l !!
de plus il faudrait tester si le siecle est postérieur à la réforme Grégorienne
contrairement à ce que fait ce code, 1500 était bien bissextile par exemple.
Fait ailleurs
return(Vrai);
}
else
{
printf("nAnnee non bissextille !!nn");
return(Faux);
}
case 30:
if ( day == 30 && month == 2)
===== le test sur day est redondant.
Corrige ...
{
printf("n Le mois de %s n'a pas 30 jours !!!nn",t_mois[month-1]);
return(Faux);
}
===== ICI il manque un break; la fonction va refuser les 30 avril, juin,
septembre et novembre :-(
case 31:
if ((month == 2) || (month == 4) || (month == 6) || (month == 9)
|| (month =))
{
printf("nLe mois de %s n'a pas 31 jours !!!nn",t_mois[month-1]);
return(Faux);
}
====== ICI aussi, mais pour éviter un bug si ce switch venait à être étendu avec
d'autres case ou un default par la suite.
}
/* les autres cas sont ok */
return(Vrai);
}
On ne teste pas les bornes pour day et month : il faudrait refuser (day < 1 ||
day > 31) et (month < 1 || month > 12).
Note quand meme qu'il manque un paquet de break dans ton switch.
Euh. Le break après le return, c'est pas un peu gâcher ?
Je reprends le code de l'OP ci-dessous:
int test_saisie( int day, int month, int year ) { /* cas special de l'annee et mois du changement : on retourne Faux ( + tard) */ if (year == Gregoire && month == 9 && day > 2) { printf("nAttention annee, mois et jour >2 du passage Julien -> Gregorien !n"); printf("---------> On verra plus tard <--------------nn"); return(Faux); }
/* c'est un 29 non fevrier donc saisie plausible = Vrai */ if ((day == 29 ) && ( month != 2)) return(Vrai);
switch (day) { case 29: if (( year%4 == 0 && year%100 != 0) || (year%4 ==0 && (year%100 == 0 && year%400 == 0))) { printf("nL'annee %d est bien Bissextille !!nn",year);
===== bissextile sans majuscule et avec un seul l
Je garde la majuscule et enveleve un l !!
de plus il faudrait tester si le siecle est postérieur à la réforme Grégorienne contrairement à ce que fait ce code, 1500 était bien bissextile par exemple. Fait ailleurs
return(Vrai); } else { printf("nAnnee non bissextille !!nn"); return(Faux); }
case 30: if ( day == 30 && month == 2)
===== le test sur day est redondant.
Corrige ...
{ printf("n Le mois de %s n'a pas 30 jours !!!nn",t_mois[month-1]); return(Faux); }
===== ICI il manque un break; la fonction va refuser les 30 avril, juin, septembre et novembre :-(
case 31: if ((month == 2) || (month == 4) || (month == 6) || (month == 9) || (month =)) { printf("nLe mois de %s n'a pas 31 jours !!!nn",t_mois[month-1]); return(Faux); }
====== ICI aussi, mais pour éviter un bug si ce switch venait à être étendu avec d'autres case ou un default par la suite.
} /* les autres cas sont ok */ return(Vrai); }
On ne teste pas les bornes pour day et month : il faudrait refuser (day < 1 || day > 31) et (month < 1 || month > 12).