테스트 사이트 - 개발 중인 베타 버전입니다

조건 분기 헷갈려서요.. 채택완료

선구자 8년 전 조회 1,748

권한 (관리자, 유저, 방문자)

 

1.관리자(admin) : admin

2,아이디(user_id) :  1)로그인 하지 않았을 경우 

                   2)로그인 했을 경우 

3. public : boolean (Y || N)

 

public이 Y인 경우 모든 사람이 볼수 있음.

pubilc이 N인 경우 admin과 작성자만 볼수 있음.

작성자 id : test

</p>

<p>if (public === 'N') {</p>

<p>// 방문 자인 경우 </p>

<p>   if ( user_id !== 'tester' || !admin){</p>

<p>          console.log('관리자랑 나만 볼거야')</p>

<p>   }</p>

<p> console.log('다 봐라')   </p>

<p>} else if (public === 'Y') {</p>

<p> console.log('다 봐라')   </p>

<p>}</p>

<p>

 

1, 여기에서 조건 분기가 잘 안되는데 

 && 인지 || 인지 헷갈리네요

 

2. console.log('다봐라')

이것을 한번만 쓰게 바꿀수 있을까요?

 

부탁드립니다.

 

 

 

 

 

 

 

 

 

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
그림자밟기

1.

if(user_id === 'tester' || admin || public === 'Y') {

    console.log('본다')

} else {

    console.log('안본다')

}

2.

if (public === 'N') {

    if (user_id !== 'tester' && !admin){

        // 작성자도 아니고, 관리자도 아니다.

        console.log('관리자랑 나만 볼거야')

    } else {

        // 테스터 거나 관리자다

        console.log('관리자거나 나다')   

    }

} else if (public === 'Y') {

    console.log('다 봐라')   

}
 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

플래토
8년 전

좀 이상한게 있네요

boolean 인데 true / false 가 아니라 .Y/ N 인가요??

Y / N 은 문자(열)로 처리할때 주로 사용합니다.

 

전제조건이 또하나 이상합니다.

 

로그인한경우 user_id 가 존재, 로그인안한경우 user_id가 부재(null) 인것을 표기하신거 같은데

 

글쓴이와 관리자만 본다고 했는데

 

글쓴이의 정보는어떤걸로 판단하나요?

 

그래서, 

제가 임의적으로 글쓴이는 wr_mb_id 라고 칭하겠습니다.

 

처리 방식은

 

[조건]

</p>

<p>1.관리자(admin) : admin</p>

<p>2,아이디(user_id) :  1)로그인 하지 않았을 경우 </p>

<p>                   2)로그인 했을 경우 </p>

<p>3. public : Y || N</p>

<p>4. 글쓴이id : wr_mb_id의 값</p>

<p> </p>

<p>public이 Y인 경우 모든 사람이 볼수 있음.</p>

<p>pubilc이 N인 경우 admin과 작성자만 볼수 있음.</p>

<p>

 

</p>

<p> </p>

<p>if (public == "Y" && user_id) {</p>

<p>    if (user_id == wr_mb_id || admin) {</p>

<p>          console.log('관리자랑 나만 볼거야');</p>

<p>    }  </p>

<p>}</p>

<p> </p>

<p>console.log('다 봐라');</p>

<p>

 

와 같이 하면

 

if 문 밖에

'다 봐라'를 찍고 else문을 제거하면

모두가 다 볼수있는 상황이 됩니다.

 

and  : &&

or : ||

 

문자열 비교 : ==

형(type)까지 비교 : ===

https://programmers.co.kr/learn/questions/25">https://programmers.co.kr/learn/questions/25

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

선구자
8년 전
감사합니다 .
이제서야 봤네요
채택 해드리지 못해서 죄송합니다.
사유는 먼저 글쓰신 분에게 채택했습니다.
채택이 2개가 안되는군요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인