일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- unity3d게임만들기
- 유니티서바이벌게임만들기
- 유니티공부
- 유니티상호작용
- Console.WriteLine
- unity게임
- 티스토리챌린지
- 유니티
- C#문법
- c#문제
- 오블완
- c# c#프로그래머스
- c#기본문법
- c#프로그래머스기초문법
- c# 백준
- 시샵
- c#코딩기초트레이닝
- unity3dservival
- 스파르타코딩클럽
- c#코테
- unity3d
- unity공부
- 유니티게임만들기
- 시샵문법
- c#
- unity게임만들기
- Unity
- 유니티3dui
- c#기초문법
- 스파르타
- Today
- Total
나 개발자 진짜 되냐?
[ C# 기본 문법 8 ] 조건문 본문
정말 자주 쓰이는 조건문과 반복문
진짜 제대로 머리 싸매고 알아볼 예정이다.
🌟 If 문 🌟
주어진 조건식의 결과에 따라 프로그램의 제어 흐름을 변경하는 제어문
쉽게 말해서,
만약에..
라고 생각해 주면 좋다.
# 실행할 코드가 여러줄인 경우
if (조건식)
{
// 조건식이 참일 경우 실행할 코드
}
# 실행할 코드가 한줄인 경우
if (조건식)
// 조건식이 참일 경우 실행할 코드
만약에, 조건식이 참일 경우
if문 안으로 들어가서 조건문이 수행되는 방식이다.
중괄호는 웬만해서는 작성하는 것을 원칙!
⭐ else 문 ⭐
if문 조건식이 참이 아닐 경우 실행되는 조건문
if (조건식)
{
// 조건식이 참일 경우 실행할 코드
}
else
{
// 조건식이 거짓일 경우 실행할 코드
}
if문에서 거짓이 나와서 if {} 중괄호를 들어가지 못한다면
else가 실행
예시문을 봐보자
int itemCount = 5;
string itemName = "HP 포션";
if (itemCount > 0)
{
// if문이 참일경우 즉 포션이 있을때
Console.WriteLine($"보유한 {itemName}의 수량: {itemCount}");
}
else
{ // if문이 거짓일때, 즉 포션이 없을때
Console.WriteLine($"보유한 {itemName}이 없습니다.");
}
⭐ else if문 ⭐
if 문의 조건식이 거짓일 때, 새로운 조건식을 사용하여 실행 여부를 결정하는 조건문
else랑 차이점은
2개일 땐 else( 조건이 참인 거 제외 전부 ) 랑 if ( 조건문 ) 두 개
2개 이상일 땐
if ( 조건식 1) elseif( 조건식 2 ) else( 조건식 3, 나머지 전부 )
를 의미한다.
if (조건식1)
{
// 조건식1이 참일 경우 실행할 코드
}
else if (조건식2)
{
// 조건식2가 참일 경우 실행할 코드
}
else
{
// 모든 조건식이 거짓일 경우 실행할 코드
}
전체적인 예시문이다.
눈으로 보면서 else와 elseif의 차이점을 꼭 확인해 보자
int playerScore = 100;
string playerRank = "";
if (playerScore >= 90)
{
playerRank = "Diamond";
}
else if (playerScore >= 80)
{
playerRank = "Platinum";
}
else if (playerScore >= 70)
{
playerRank = "Gold";
}
else if (playerScore >= 60)
{
playerRank = "Silver";
}
else
{
playerRank = "Bronze";
}
Console.WriteLine("플레이어의 등급은 " + playerRank + "입니다.");
⭐ 중첩 조건문⭐
조건문 안에 조건문이 있는 경우
즉,
if문 안에 if문이 또 있는 경우
int itemLevel = 3; // 아이템 레벨
string itemType = "Weapon"; // 아이템 종류
if (itemType == "Weapon")
{
if (itemLevel == 1)
{
// 레벨 1 무기 효과
Console.WriteLine("공격력이 10 증가했습니다.");
}
else if (itemLevel == 2)
{
// 레벨 2 무기 효과
Console.WriteLine("공격력이 20 증가했습니다.");
}
else
{
// 그 외 무기 레벨
Console.WriteLine("잘못된 아이템 레벨입니다.");
}
}
else if (itemType == "Armor")
{
if (itemLevel == 1)
{
// 레벨 1 방어구 효과
Console.WriteLine("방어력이 10 증가했습니다.");
}
else if (itemLevel == 2)
{
// 레벨 2 방어구 효과
Console.WriteLine("방어력이 20 증가했습니다.");
}
else
{
// 그 외 방어구 레벨
Console.WriteLine("잘못된 아이템 레벨입니다.");
}
}
else
{
// 그 외 아이템 종류
Console.WriteLine("잘못된 아이템 종류입니다.");
}
예시를 보며 확인해 보자!
if 문안에서
또 만약에, 를 작성하는 코드이다.
⭐ 중첩 조건문⭐
if문을 간단하게 만드는 형태로
조건식의 결과에 따라 두 값을 선택하는 연산자
(조건식)? 참일 경우 값 : 거짓일 경우 값;
int currentExp = 1200;
int requiredExp = 2000;
# 삼항 연산자
string result = (currentExp >= requiredExp) ? "레벨업 가능" : "레벨업 불가능";
Console.WriteLine(result);
# if else 문
if (currentExp >= requiredExp)
{
Console.WriteLine("레벨업 가능");
}
else
{
Console.WriteLine("레벨업 불가능");
}
이런 기능이 있다 정도만 알아두자!
길어 보이는 if문을
간단하게 줄일 수 있다는 장점이 있다.
두 가지 일경우만 사용하는 것이 헷갈리지 않는다!
🌟 Switch 문 🌟
변수나 식에 따라 다른 코드 블록을 실행하는 제어문
switch (변수나 식)
{
case 값1:
// 값1이 나온 경우 실행되는 코드
break;
case 값2:
// 값2가 나온 경우 실행되는 코드
break;
// ...
default:
// 모든 case문에 해당하지 않는 경우 실행되는 코드
break;
}
break라는 친구를 통해
case하나를 탈출할 수 있다.
if문과의 차이점을 본다면
if문은 참문장이 나오면
다른 문장을 다 배제하지만
switch는 케이스가 하나하나 있기 때문에
case4가 정답이어도
1,2,3,4,5,6까지 스윽 내려가 보기 때문에
사실 컴퓨터한테는 뭐
어엉ㅁ청난 차이가 있는 건 아니지만..
사용하는 메모리가 조금 더 있지 않을까? 하는 게
제 생각..ㅎㅎ
하지만!
스위치를 사용하는 것이 더 효율적일 때도 많기 때문에
적재적소에 잘 사용하는 것이 중요하다!
예시문이다.
Console.WriteLine("게임을 시작합니다.");
Console.WriteLine("1: 전사 / 2: 마법사 / 3: 궁수");
Console.Write("직업을 선택하세요: ");
string job = Console.ReadLine();
switch (job)
{
case "1":
Console.WriteLine("전사를 선택하셨습니다.");
break;
case "2":
Console.WriteLine("마법사를 선택하셨습니다.");
break;
case "3":
Console.WriteLine("궁수를 선택하셨습니다.");
break;
default:
Console.WriteLine("올바른 값을 입력해주세요.");
break;
}
Console.WriteLine("게임을 종료합니다.");
if문이랑 굉장히 비슷한 친구지만.
switch 문과 if문을 동시에 쓸 수 있다면
if문을 쓰는 것이 더 효율적이지 않을까..
라는 생각이 들었다.
지금까지 한 내용을 바탕으로
여러 예시들을 준비했다!
보면서
if문을 활용해 보자
1. 홀수 짝수 구분하기
홀수 짝수는 어떻게 구분할까?
수학적 패턴을 분석해 보자
홀수는 2로 나눌 때 나머지가 1이고
짝수는 2로 나누면 나머지가 0이다
이것을 활용해 보자!
Console.Write("번호를 입력하세요: ");
int number = int.Parse(Console.ReadLine());
if (number % 2 == 0)
{
Console.WriteLine("짝수입니다.");
}
else
{
Console.WriteLine("홀수입니다.");
}
저번에 배운 친구 ReadLind 입력받아오는 친구인데,
ReadLine 하고
그 값을 따로 parse 하는 게 아니라
한 번에 가능할 수 있다!
2. 등급을 스위치로 표현
case를 나누어서
90점일 때 80점일 때
등등해주고
break;
잊지 않기!!
int playerScore = 100;
string playerRank = "";
switch (playerScore / 10)
{
case 10:
case 9:
playerRank = "Diamond";
break;
case 8:
playerRank = "Platinum";
break;
case 7:
playerRank = "Gold";
break;
case 6:
playerRank = "Silver";
break;
default:
playerRank = "Bronze";
break;
}
Console.WriteLine("플레이어의 등급은 " + playerRank + "입니다.");
3. 로그인 프로그램 만들어보기
논리연산자를 이용해서
아이디랑 패스워드가 다 같으면 성공!
하나라도 다르면 실패..!!
string id = "myid";
string password = "mypassword";
Console.Write("아이디를 입력하세요: ");
string inputId = Console.ReadLine();
Console.Write("비밀번호를 입력하세요: ");
string inputPassword = Console.ReadLine();
if (inputId == id && inputPassword == password)
{
Console.WriteLine("로그인 성공!");
}
else
{
Console.WriteLine("로그인 실패...");
}
4. 알파벳 판별 프로그램
비슷한 원리로
대문자 A부터 Z까지
또는
소문자 a부터 z까지
맞으면 알파벳, 아니면 아니라고!
Console.Write("문자를 입력하세요: ");
char input = Console.ReadLine()[0];
if (input >= 'a' && input <= 'z' || input >= 'A' && input <= 'Z')
{
Console.WriteLine("알파벳입니다.");
}
else
{
Console.WriteLine("알파벳이 아닙니다.");
}
여기서 중요한건,
두번째 줄 char 도 문자 이기 때문에
따로 문자열처리를 안해줘도 된다.
[0] 이것은 인덱스로
받은 문자열에 첫번째 친구를 가져올거에요!
라고 해석 할 수 있다.
'C# 을 맛보았어요! > 문법정리를 해보았어요!' 카테고리의 다른 글
[ C# 기본 문법 10 ] 배열 (1) | 2024.09.21 |
---|---|
[ C# 기본 문법 9 ] 반복문 (0) | 2024.09.21 |
[ C# 기본 문법 7 ] 문자열 처리 (0) | 2024.09.19 |
[ C# 기본 문법 6 ] 연산자 종류와 연산자 우선순위 (0) | 2024.09.19 |
[ C# 기본 문법 5 ] 입력 받을때는? READ! (0) | 2024.09.19 |