3개 정수 오름차순으로 나열하는 프로그램 코딩하는데 if (x<y&y<z) printf (x,y,z) 이런식으로 했는데 왜 &만 쓰는거임? - dc App
익명(117.111)2018-04-23 07:44
ㄴ 이산수학 책 펴라 ㅋㅋ
ㅋㅋ(220.125)2018-04-23 08:19
이거보고 엔퍼센트인줄 알았는데 엔드 연산자였네요 ㅇㅅㅇa 아침 저혈압 ㅆㅅㅌㅊ네 9ㅅ9 - dc App
익명(223.63)2018-04-23 08:37
boolean bool1 = exp1 && epx2;
asdf(121.137)2018-04-23 09:20
boolean bool2 = exp1 & epx2;
asdf(121.137)2018-04-23 09:21
2번째 구문은 exp1이 false라도 exp2를 실행한다는 말이네
asdf(121.137)2018-04-23 09:21
&는 비트단위 and 연산자라서 그런거 아님?
익명(59.6)2018-04-23 10:33
&는 그냥 비트연산이고, 이게 if문에서 먹히는 이유가 그냥 0이냐 아니냐로 false true를 구분하기 때문일뿐이고, && 가 진정한 조건 and인데, 제대로된 언어라면 1항 평가하고 false면 2항을 평가하지 않는다. 1항이 true여야만 2항을 평가하지.
ㅇㅇㅇ(121.144)2018-04-23 11:09
이게 왜 중요하냐면, if(n>0 && arr[n-1]>999) 이런 조건을 걸때 유용함. 만약 위와같은 1항 2항 평가기준이 없을경우 n이 0이면 2항은 오류를 발생시키는 구문이 됨. n이 0보다 커야만 2항이 오류가 안생기고, 의도대로 돌아갈 수 있음.
ㅇㅇㅇ(121.144)2018-04-23 11:10
즉, if(n>0 & arr[n-1]>999) 이렇게 구문 쓰면, 닥치고 양쪽을 평가하기 때문에 n이 0이면 오류가 생김. 그리고 언어마다 &&나 || 개념이 존재하지 않는 언어가 있고, 오해하기 쉬운 언어가 있으므로 주의해서 써야함. 참고로 저런 구문을 작성할 필요가 있다면 equivalent한 if구문을 if-else로 작성 가능하므로 길어지는게 문제일뿐, 처리가 불가능하지는 않음.
3개 정수 오름차순으로 나열하는 프로그램 코딩하는데 if (x<y&y<z) printf (x,y,z) 이런식으로 했는데 왜 &만 쓰는거임? - dc App
ㄴ 이산수학 책 펴라 ㅋㅋ
이거보고 엔퍼센트인줄 알았는데 엔드 연산자였네요 ㅇㅅㅇa 아침 저혈압 ㅆㅅㅌㅊ네 9ㅅ9 - dc App
boolean bool1 = exp1 && epx2;
boolean bool2 = exp1 & epx2;
2번째 구문은 exp1이 false라도 exp2를 실행한다는 말이네
&는 비트단위 and 연산자라서 그런거 아님?
&는 그냥 비트연산이고, 이게 if문에서 먹히는 이유가 그냥 0이냐 아니냐로 false true를 구분하기 때문일뿐이고, && 가 진정한 조건 and인데, 제대로된 언어라면 1항 평가하고 false면 2항을 평가하지 않는다. 1항이 true여야만 2항을 평가하지.
이게 왜 중요하냐면, if(n>0 && arr[n-1]>999) 이런 조건을 걸때 유용함. 만약 위와같은 1항 2항 평가기준이 없을경우 n이 0이면 2항은 오류를 발생시키는 구문이 됨. n이 0보다 커야만 2항이 오류가 안생기고, 의도대로 돌아갈 수 있음.
즉, if(n>0 & arr[n-1]>999) 이렇게 구문 쓰면, 닥치고 양쪽을 평가하기 때문에 n이 0이면 오류가 생김. 그리고 언어마다 &&나 || 개념이 존재하지 않는 언어가 있고, 오해하기 쉬운 언어가 있으므로 주의해서 써야함. 참고로 저런 구문을 작성할 필요가 있다면 equivalent한 if구문을 if-else로 작성 가능하므로 길어지는게 문제일뿐, 처리가 불가능하지는 않음.