я столкнулся с проблемой в книге, когда я побежал код в MSDOSBox TurboC++ для Windows 7, он показал мне неожиданное поведение: -Неожиданное поведение Switch-Case в C
код следующим образом: -
#include <stdio.h>
#include <conio.h>
void main()
{
char s = 3;
switch(s)
{
case 1 :
printf("\nDiamond");
break;
case 2 :
printf("\nSpades");
break;
default :
printf("\nHeart");
break;
}
printf("\nI thought something like this");
getch();
}
теперь проблема была ...
заявление в случае, если по умолчанию никогда не был напечатан. это только напечатанный «Я думал, что-то вроде этого»
я понял, что в выключателя случае символ трактуется как его значение в ASCII коде
Ну ... здесь, значение обугливаться сек было дано 3 не «3» но опять по крайней мере, по умолчанию случай должен быть напечатан, даже если значение не имеет ничего общего с какой-либо из случаев
хорошо ... если это помогает ..
я попытался поставить
case 3 :
вместо
default :
Теперь утверждение т.е. Е ("\ nHeart"); был выполнен и напечатан «Сердце» на экране
Во-первых, почему вы все еще используете TURBO C COMPILER? –
Он отлично работает для меня с компилятором MS C ... –
извините, ребята. , на самом деле это MSDOSBox TurboC++ –