int main(void)
{
int n1 = 0, n2 = 0, n3 = 0, re = 0;
char si = 0;
scanf("%d %c %d", &n1, &si, &n2);
switch (si)
{
case '*':
printf("%d %c %d = %d", n1, si, n2, n1 * n2);
break;
case '/':
printf("%d %c %d = %d", n1, si, n2, n1 / n2);
break;
case '+':
printf("%d %c %d = %d", n1, si, n2, n1 + n2);
break;
case '-':
printf("%d %c %d = %d", n1, si, n2, n1 - n2);
break;
case '%':
printf("%d %c %d = %d", n1, si, n2, n1 % n2);
break;
case '^':
printf("%d %c %d = %d", n1, si, n2, n1^n2);
break;
default:
;
}
}
default 자체를 안써도 실행은 되던데
굳이 써야하는 이유는 뭐고 쓰게되면 도대체 뭐라고 써야함??
그리고 내가 코드가 이상한건지 3 ^4 해도 7로 나오고 3^1 은 1이나오고 이럼
왜이런거임
- dc official App
굳이 안써도 되지 쓸때는 그냥 다른거 안받겠다는 코더의 의지를 명시적으로 나타내려고 쓰거나 아니면 에러 던지거나 함 그리고 ^ 는 xor 연산자라 3^4 = 7가 맞음. 3^1=2인데 왜 1이 나온건진 몰?루
^ 이거 제곱아님? - dc App
대부분의 언어에서 ^ 는 제곱연산자가 아니고 XOR 연산자임
흠 ㅇㅋ 공부좀해봄 - dc App
그럼 default 자체를 안써도되는거임 아님 그냥 써놓고 의미없는걸 써놓는게 좋은거임? - dc App
default 기능 알지? 그 기능이 필요하면 당연히 쓰는 거고, default 기능이 필요없으면 걍 사용하든 말든 그냥 본인이나 팀의 코딩 스타일에 따라 맘대루 해
뜻이 먼데 ㅇㅅㅇ - dc App
보통은 어썰트 걸어둠
그게머킴 - dc App
Relese 레벨에서 지워지는 코드임 debug시에는 assert 조건이 false이면 프로그램 중단시키고 알려줌 저런 switch문 default에는 항상 걸어두고 혹시 잘못된 입력값이 들어올수도 있으니 걸어두는거임 java에서 assert는 실행옵션으로 제어하는거라 대신 익셉션 던지게 해놓는 경우도 많음
씹 먼말인지 이해못하겠음 왜하는지도 ㅇㅇ.. - dc App