inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

[RENEWAL] 비교 연산

살아있는 고렙 유저인지 알아보는 문제 질문입니다.

190

Z E

작성한 질문수 2

0

using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int hp = 0;
int level = 40;
bool isAlive = hp > 0;
bool isHighLevel = level >= 50;
// a는 살아있는 고렙 유저인가요?
bool a = (true == isAlive) == isHighLevel;
Console.WriteLine(a);
}
}
}

a는 죽어있고 레벨도 40으로 낮은데 true 를 추출하는 이유가 뭔가요?

          bool a = (true == (isAlive == isHighLevel));

이 부분이 제가 생각하기로는 살아있는지와 레벨이 높은지를 비교해서 같은지 확인한 후 그것이 true라면 a 값에 true를 넣는다는 생각으로 짰는데 위의 문법으로는 isAlive와 isHighLevel이  false 라서 true와 같지 않은데 a의 값에 true가 들어가는 이유를 알고 싶습니다.

          bool a = ((true == isAlive) == isHighLevel);

괄호를 바꿔서 어느쪽을 먼저 비교하든 괄호를 다 빼든 결과가 똑같이 true가 됩니다.

C#

답변 1

1

Rookiss

bool a = ((true == isAlive) && isHighLevel);
&&를 해야 AND가 됩니다.
그리고 isALive가 boolean이라면 true ==는 생략을 많이 합니다.

bool a = (true == isAlive) == isHighLevel;

 isAlive == isHighLevel 이렇게 하면
(살아있음 여부와 고렙 여부가 일치하는지?)라는 의미가 됩니다.

0

Z E

아! 이해 했습니다.

위의 문제를 ==로 짜면 서로 같은지만 비교하므로 true로 같을 때나 서로 다를 때는 상관 없는데 false로 같을 때 문제가 생기는 거군요.

제가 만든 수식이 어떤식으로 동작하는지도 알려주셔서 감사합니다.

Generic에 대한 질문 있습니다.

0

113

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

226

2

다형성 캐시 문제

0

136

3

.

0

77

1

프로퍼티 강의 질문 있습니다.

0

85

1

이후 커리 질문

0

91

1

static

0

101

2

강의에는 새로운 클래스 파일을 생성하면...

0

80

1

생성자의 이름 선언

0

68

1

9:03 Divide(10 , 3) 부분 질문입니다

0

93

1

깃허브 관련 질문 있습니다.

0

248

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

258

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

311

2

Activator 질문있습니다

0

343

1

이넘 타임 선언 질문

0

358

1

Sort 오름차순, 내림차순

0

332

1

질문 있습니다.

0

254

1

팩토리얼 문제

0

277

1

Sort함수 질문있습니다.

0

271

1

다형성 함수 질문 있습니다.

0

230

1

질문이 있습니다.

0

236

1

섹션2 연습문제 질문입니다.

0

222

1

안녕하세요~서버에 대해 질문이 있습니다.

1

288

1

텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ

0

401

1