채택완료

조건 분기 헷갈려서요..

2017-10-30 (월) 21:47:40 1,874

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

1.관리자(admin) : admin

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

                   2)로그인 했을 경우 

3. public : boolean (Y || N)

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

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

작성자 id : test

Copy
if (public === 'N') {

// 방문 자인 경우 

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

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

   }

 console.log('다 봐라')   

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

 console.log('다 봐라')   

}

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

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

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

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

부탁드립니다.

|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트
2017-10-30 (월) 23:39:54

1.

Copy
if(user_id === 'tester' || admin || public === 'Y') {
    console.log('본다')
} else {
    console.log('안본다')
}


2.

Copy
if (public === 'N') {
    if (user_id !== 'tester' && !admin){
        // 작성자도 아니고, 관리자도 아니다.
        console.log('관리자랑 나만 볼거야')
    } else {
        // 테스터 거나 관리자다
        console.log('관리자거나 나다')   
    }
} else if (public === 'Y') {
    console.log('다 봐라')   
}

 

좀 이상한게 있네요

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

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

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

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

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

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

그래서, 

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

처리 방식은

[조건]

Copy
1.관리자(admin) : admin

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

                   2)로그인 했을 경우 

3. public : Y || N

4. 글쓴이id : wr_mb_id의 값

 

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

pubilc이 N인 경우 admin과 작성자만 볼수 있음.
Copy
if (public == "Y" && user_id) {

    if (user_id == wr_mb_id || admin) {

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

    }  

}

 

console.log('다 봐라');

와 같이 하면

if 문 밖에

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

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

and  : &&

or : ||

문자열 비교 : ==

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

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

답변에 대한 댓글 1개

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

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