switch () .
:
switch () {
case 1: 1
case 2: 2
...
case N: N
default: N +1 ;
}
, . , .
. , . , , .
, . , . .
default , , , switch.
break () switch. , switch :
switch () {
case 1: 1; break;
case 2: 2; break;
...
case N: N; break;
default: (N +1); break;
}
( break) . 6.4.
switch break:
void main(void) {
int i = 2;
switch(i) {
case 1: puts (" 1. "); break;
case 2: puts (" 2. "); break;
case 3: puts (" 3. "); break;
default: puts (" default. "); break;
}
}
:
2.
break ( . 6.5):
void main() {
int i = 2;
switch(i) {
case 1: puts (" 1. ");
case 2: puts (" 2. ");
case 3: puts (" 3. ");
default: puts (" default. ");
}
}
:
2.
3.
default.
. : 1, , 2.
:
#include <stdio.h>
void main(void)
{
double a, b, c;
char s;
m1: fflush(stdin); // stdin
|
|
printf("\n 1, , 2:");
scanf("%lf%c%lf", &a, &s, &b);
switch(s) {
case '+': c = a+b; break;
case '': c = ab; break;
case '*': c = a*b; break;
case '/': c = a/b; break;
default: printf("\n , ! "); goto m1;
}
printf("\n a %c b = %lf ", s, c);
printf("\n ? (Y/y) ");
s = getch();
if ((s=='Y') || (s=='y')) goto m1;
printf("\n Good bye! ");
}
, , , , Enter:
1, , 2: 2.4+3.6
:
a + b = 6.000000
? (Y/y)
y (Y), :
1, , 2:
2r3, :
, !
1, , 2: 2 * 3
a*b = 6.000000
Continue? (Y/y)
, y Y
Good bye!
.