조건 분기 헷갈려서요..

조건 분기 헷갈려서요..

QA

조건 분기 헷갈려서요..

본문

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

 

1.관리자(admin) : admin

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

                   2)로그인 했을 경우 

3. public : boolean (Y || N)

 

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

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

작성자 id : test


if (public === 'N') {
// 방문 자인 경우 
   if ( user_id !== 'tester' || !admin){
          console.log('관리자랑 나만 볼거야')
   }
 console.log('다 봐라')   
} else if (public === 'Y') {
 console.log('다 봐라')   
}

 

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

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

 

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

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

 

부탁드립니다.

 

 

 

 

 

 

 

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 2

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('다 봐라')   
}

 

좀 이상한게 있네요

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

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

 

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

 

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

 

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

 

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

 

그래서, 

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

 

처리 방식은

 

[조건]


1.관리자(admin) : admin
2,아이디(user_id) :  1)로그인 하지 않았을 경우 
                   2)로그인 했을 경우 
3. public : Y || N
4. 글쓴이id : wr_mb_id의 값
 
public이 Y인 경우 모든 사람이 볼수 있음.
pubilc이 N인 경우 admin과 작성자만 볼수 있음.

 


 
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

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 137
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT