오늘의 공부
VS에서 C# 프로젝트 시작
VS2022 실행 → '새 프로젝트 만들기' → '콘솔 앱(C#)' |
디버깅하기
C# 코드 작성 → 디버그 탭 → '디버깅 시작' (=단축키 F5) |
변수의 데이터 타입
- bool : true or false
- char : 문자(1byte = 8bit)
- string : 문자열
- short : 작은 숫자
- long long : 큰 숫자(=int64, big integer와 비슷한 개념)
- int : 정수(소수점x)
- float : 작은 실수
- float64 or double : 긴 실수
int a; // 정수를 a라는 이름으로 변수화 하겠다고 선언
a=2000;
Console.WriteLine(a); //Console의 WriteLine함수로 콘솔창에 a를 출력
데이터의 표현 범위
- 변수의 데이터 타입마다 표현 범위가 다르다.
🎓 새로운 지식
○ unsigned : 부호 없이 0부터 최대표현범위까지의 숫자 표현가능
(예시)
int : -2147483648 ~ 2147483647
unsigned int : 4294967295
↓참고자료 링크
https://learn.microsoft.com/en-us/cpp/c-language/cpp-integer-limits?view=msvc-170
bit의 이진수 표현 (10진수 to 2진수)
1 = 00000001 (2) 2 = 00000010 (2) ... 64 = 01000000 (2) 128 = 10000000 (2) |
반복문
○ while(조건문) { }
: 조건문이 참일때 계속해서 반복한다.
○ for(int i = 초기값; 조건식; 증감식) { }
: 조건식이 참일때 반복
※ 증감식의 ++, -- : ++는 기존 변수에 1을 더하고, --는 1을 빼는 연산자.
※ [ i++; ] 는 i를 먼저 반환한 후에 1을 더하고, [ ++i; ]는 i에 1을 더한후 반환한다.
※ += 는 좌항의 변수에 우항의 값을 더한 결과를 변수에 다시 저장하는 연산자이다.
int a = 10;
a += 20;
Console.WriteLine(a);
//a의 값 30이 출력된다.
string str = "abc";
str += "def";
Console.WriteLine(str);
//str "abcdef"가 출력된다.
💡질문 :: while문과 for문의 차이는 무엇인가요?
⇒ for문은 주로 정해진 범위 내에서 제한적으로 사용할 경우에 활용!
참고 링크👍 :: 반복문
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/statements/iteration-statements#the-foreach-statement
○ foreach
형식 :: foreach (요소를 반환할 변수 in 데이터 소스) { }
- 데이터 소스(배열,리스트 등) 안의 모든 요소에 대해 반복문을 실행한다.
List<int> fibNumbers = new() { 0, 1, 1, 2, 3, 5, 8, 13 };
foreach (int element in fibNumbers)
{
Console.Write($"{element} ");
//== Console.Write("{0} ",element);
}
찾아볼 자료👍 :: $(을)를 사용하여 문자열 보간
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/tokens/interpolated
https://woojoolog.tistory.com/4#google_vignette (C# 다양한 문자 출력 방법)
이중 반복문
- 반복문 내에 반복문이 존재하는 경우, 이중반복문이라 함.
주석 단축키 활용
- ctrl+K + ctrl+C
- ctrl+K + ctrl+U
연습문제풀이
문제 1)
증가하는 별 출력하기
int num = 4;
string tree = "";
for(int i = 0;i < num; i++)
{
tree = "";
for(int j = 0; j <= i; j++)
{
tree += "*";
}
Console.WriteLine(tree);
}
문제 2)
오른쪽 정렬로 출력하기
for (int i = 0; i < num; i++) //num = 4;
{
tree = "";
for (int j = 1; j < num-i; j++)
{
tree += " ";
}
for(int k = 0; k <= i; k++)
{
tree += "*";
}
Console.WriteLine(tree);
}
문제 3)
대칭(트리모양)으로 출력하기
int n = 5;
string space = "";
string star = "";
for( int i = 0; i < n; i++)
{
space = "";
star = "";
for(int j=1; j < n-i; j++)
{
space += " ";
}
for(int k = 0;k <= i*2; k++)
{
star += "*";
}
Console.WriteLine(space+star);
}
문제 4)
○ 조건 1.
w키를 누르면 △, a키를 누르면 ◁, s키를 누르면 ▽, d키를 누르면 ▷ 모양으로
별이 출력되도록 함.
○ 조건 2.
프로그램이 계속 반복 실행되도록함.
○ 조건 3.
ReadKey 활용
int line = 5;
void up()
{
for (int i = 0; i < line; i++)
{
for (int j = 1; j < line - i; j++)
Console.Write(" ");
for (int k = 0; k <= i * 2; k++)
Console.Write("*");
Console.WriteLine();
}
Console.WriteLine();
}
void left()
{
for (int i = 1; i < line * 2; i++)
{
if (i <= line)
{
for (int j = 0; j < line-i; j++)
Console.Write(" ");
for (int k = 0; k < i; k++)
Console.Write("*");
}
else
{
for (int j = 0; j < i % line; j++)
Console.Write(" ");
for (int k = 0; k < line - i % line; k++)
Console.Write("*");
}
Console.WriteLine();
}
Console.WriteLine();
}
void down()
{
for (int i = line; i > 0; i--)
{
for (int j = 0; j < line-i; j++)
Console.Write(" ");
for (int k = 1; k < i * 2; k++)
Console.Write("*");
Console.WriteLine();
}
Console.WriteLine();
}
void right()
{
for (int i = 1; i < line*2; i++)
{
if (i <= line) {
for(int j = 0;j < i; j++)
Console.Write("*");
}
else {
for (int j = 0; j < line-i%line; j++)
Console.Write("*");
}
Console.WriteLine();
}
Console.WriteLine();
}
bool flag = true;
while (flag)
{
Console.Write("키를 입력하세요. : ");
ConsoleKeyInfo keyinfo = Console.ReadKey();
Console.WriteLine("");
char key = keyinfo.KeyChar;
switch (key)
{
case 'w':
up();
break;
case 'a':
left();
break;
case 's':
down();
break;
case 'd':
right();
break;
case 'q':
Console.WriteLine("프로그램을 종료합니다.");
flag = false;
break;
default:
Console.WriteLine("잘못된 입력입니다.");
break;
}
}
(추가 응용 문제)
- 팩토리얼 출력하기
- 피보나치 수열 출력하기 (재귀함수 활용)
'UNITY > 유니티게임스쿨' 카테고리의 다른 글
[유니티게임스쿨 TIL] 유니티 기본 :: 캐릭터 애니메이션 설정하기, 트리거 활용하기 (0) | 2024.06.05 |
---|---|
[유니티게임스쿨 TIL] C# 기초 문법 이해 :: 파일 입출력, Collection, LINQ (0) | 2024.06.04 |
[유니티게임스쿨 TIL] 유니티 기본 :: 프리팹과 오브젝트, 캐릭터 이동, 점프 기능 추가하기 (1) | 2024.06.03 |
[유니티게임스쿨 TIL] 유니티 기본 :: 유니티 설치와 인터페이스 이해 (0) | 2024.05.31 |
[유니티게임스쿨 TIL] C# 기초 문법 이해 :: 재귀 함수, 연산자, 클래스와 인터페이스 (0) | 2024.05.30 |