Lv.1 데이터와 연산자!
chapter1. 데이터(변수) 다루기!
using System;
class Variable
{
static void Main(string[] args)
{
// 정수형 변수 선언 및 초기화
int level = 10; // 현재 레벨 값
int count = 100; // 카운트(횟수) 값
// 실수형 변수 선언 (float는 소수점 이하 7자리 정도의 정밀도를 가짐)
float percentage = 0.5f; // 백분율(50%를 의미)
float speed = 1.5f; // 속도 값
// 문자열 변수 선언
string nickName = "John"; // 별명
string description = "This is a description"; // 설명 텍스트
// 각 변수의 값을 출력하여 값 확인
Console.WriteLine(level);
Console.WriteLine(count);
Console.WriteLine(percentage);
Console.WriteLine(speed);
Console.WriteLine(nickName);
Console.WriteLine(description);
// 위 출력문들은 경고 메시지를 없애기 위해 사용됨 (사용하지 않으면 선언만 되어 경고 발생)
// 형변환 예제: 정수를 실수로 변환
int iten = 10;
float ften = (float)iten; // 명시적 형변환을 통해 정수 -> 실수로 변환
// 형변환 예제: 실수를 정수로 변환 (소수점 이하 자릿수는 버림)
float fFive = 5.0f;
int iFive = (int)fFive;
// 숫자를 문자열로 변환하기
int n = 10;
float f = 0.5f;
string sn = n.ToString(); // int형을 문자열로 변환
string sf = f.ToString(); // float형을 문자열로 변환
// 문자열을 숫자로 변환하기
string strten = "10";
string strsix = "6.2";
int Iten = Convert.ToInt32(strten); // Convert는 null값도 처리 가능 (문자열 -> 정수)
float Isix = float.Parse(strsix); // Parse는 문자열만 처리하며, null값은 에러 발생
/* Convert와 Parse의 차이:
- Convert: null 값을 처리할 수 있으며, 다양한 데이터 타입 간의 변환이 가능
- Parse: 문자열만 변환하며, null 값이 들어오면 예외 발생
*/
}
}
chapter2. 연산자 실습
using System;
class VariableandOperator
{
static void Main(string[] args)
{
// 산술 연산 및 대입 연산자 예제
int ten = 10;
ten += 7; // 10 + 7 = 17
ten -= 3; // 17 - 3 = 14
ten *= 2; // 14 * 2 = 28
ten = (int)((float)ten * 1.5); // 28을 float형으로 변환 후 1.5배, 다시 int형으로 변환 (42가 예상됨)
ten /= 3; // 42 / 3 = 14 (정수 나눗셈)
ten %= 4; // 14 % 4 = 2 (나머지 연산)
Console.WriteLine(ten); // 최종 결과 출력
// 문자열 보간법을 사용한 문자열 합치기 예제
string name = "patric";
int year = 2025;
string introduce = $"안녕하세요. 제 이름은 {name}입니다."; // 변수 name을 문자열 내에 포함
string thisYear = $"올해는 {year}년 입니다."; // 변수 year를 문자열 내에 포함
// 비교 연산자 사용 예제
int new_ten = 10;
bool result_1 = new_ten == 10; // new_ten이 10과 같은지 비교
bool result_2 = new_ten != 11; // new_ten이 11과 다른지 비교
bool result_3 = new_ten < 20; // new_ten이 20보다 작은지 비교
bool result_4 = new_ten > 5; // new_ten이 5보다 큰지 비교
// 결과를 한 줄에 연속해서 출력 (줄바꿈 없이)
Console.Write(result_1);
Console.Write(result_2);
Console.Write(result_3);
Console.Write(result_4);
/* 산술연산의 우선순위:
- 곱셈, 나눗셈, 모듈로(%)가 덧셈, 뺄셈보다 우선 적용됨.
- 괄호가 있으면 내부 연산을 먼저 계산함.
*/
}
}
chapter3. 연산자 실습
using System;
namespace DataAndOperators
{
class VariableandOperator
{
static void Main(string[] args)
{
// 사용자로부터 임의의 입력을 받아 해당 데이터 타입을 판별
Console.WriteLine("임의의 무언가를 입력해주십시오.");
string input = Console.ReadLine();
// int.TryParse: 입력값을 정수로 변환 시도 (변환 성공 시 true)
// 주의: year 변수가 미리 선언되지 않았으므로 아래처럼 임시 변수 사용
if (int.TryParse(input, out int year))
{
Console.WriteLine("입력받은 데이터는 숫자입니다.");
}
// bool.TryParse: 입력값을 불리언으로 변환 시도 (true/false)
else if (bool.TryParse(input, out bool boolValue))
{
Console.WriteLine("입력받은 데이터는 불리언입니다.");
}
else
{
// 위 두 경우에 해당되지 않으면 문자열로 간주
Console.WriteLine("입력받은 데이터는 문자열입니다.");
}
// 입력받은 값이 숫자인지 확인 후, 그 숫자가 100 미만인지 이상인지를 판별
Console.WriteLine("이번엔 임의의 숫자를 입력해주십시오.");
string input2 = Console.ReadLine();
if (int.TryParse(input2, out int number))
{
if (number < 100)
{
Console.WriteLine($"{number}은(는) 100 보다 작은 수 입니다.");
}
else // number가 100 이상일 경우
{
Console.WriteLine($"{number}은(는) 100 보다 같거나 큰 수 입니다.");
}
}
else
{
// 숫자 변환에 실패하면 안내 메시지 출력
Console.WriteLine("숫자가 아닙니다.");
}
// 홀수와 짝수를 판별하는 예제
Console.WriteLine("이번엔 전혀 다른 임의의 숫자를 입력해주십시오.");
string input3 = Console.ReadLine();
if (int.TryParse(input3, out int num))
{
// num % 2 연산을 통해 홀수(나머지 1)와 짝수를 판단
if (num % 2 != 0)
{
Console.WriteLine($"{num} 은(는) 홀수입니다.");
}
else
{
Console.WriteLine($"{num} 은(는) 짝수입니다.");
}
}
else
{
Console.WriteLine("숫자가 아닙니다");
}
/* if와 switch의 차이:
- if문: 조건식에 따라 다양한 형태의 로직 구현이 가능
- switch문: 주어진 값에 따른 여러 선택지(case)를 단순하게 처리할 때 유용
*/
}
}
}
Lv.2 제어문!
chapter1. 숫자 검증!
using System;
namespace DataAndOperators
{
class Controller
{
static void Main(string[] args)
{
// 사용자로부터 두 개의 숫자 입력 받기
Console.WriteLine("첫번째 수를 입력해주세요.");
string input = Console.ReadLine();
Console.WriteLine("두번째 수를 입력해주세요.");
string input2 = Console.ReadLine();
// 두 개의 입력값을 각각 input과 input2에 저장
// 두 입력 모두 숫자로 변환이 실패한 경우 처리
if (!int.TryParse(input2, out int number2) && !int.TryParse(input, out int num2))
{
Console.WriteLine("두 데이터 모두 숫자가 아닙니다.");
}
// 두 입력 모두 숫자로 변환이 성공한 경우 처리
else if (int.TryParse(input2, out number2) && int.TryParse(input, out num2))
{
Console.WriteLine("두 데이터는 모두 숫자입니다.");
// 두 숫자의 크기를 비교하여 결과 출력
if (number2 == num2)
{
Console.WriteLine($"{number2}와(과) {num2}은(는) 같습니다.");
}
else if (number2 > num2)
{
Console.WriteLine($"{number2}은(는) {num2}보다 큽니다.");
}
else
{
Console.WriteLine($"{number2}(는) {num2}보다 작습니다.");
}
}
// 그 외 한쪽만 숫자로 변환된 경우 처리
else if (!int.TryParse(input2, out number2) || !int.TryParse(input, out num2))
{
Console.WriteLine("하나의 데이터만 숫자입니다.");
}
}
}
}
chapter2. Switch를 활용한 간단한 퀴즈내기!
using System;
namespace DataAndOperators
{
class Controller
{
static void Main(string[] args)
{
// 간단한 퀴즈 출력
Console.WriteLine("Q. 대한민국의 수도는 어디일까요?");
Console.WriteLine("1.인 천 2.평 창 3.서 울 4.부 산");
// 사용자의 입력을 받음
string input = Console.ReadLine();
// 입력받은 값을 정수로 변환한 후 switch 문으로 분기 처리
switch(Convert.ToInt32(input))
{
case 1:
Console.WriteLine("오답입니다!");
break;
case 2:
Console.WriteLine("오답입니다!");
break;
case 3:
Console.WriteLine("정답입니다!");
break;
case 4:
Console.WriteLine("오답입니다");
break;
default:
// 예상 외의 입력에 대한 처리 (필요시 추가)
Console.WriteLine("1부터 4 사이의 숫자를 입력해주세요.");
break;
}
// switch문은 break를 사용하여 각 케이스의 실행 후 탈출해야 함
}
}
}
chapter3. 제시된 문제 외의 닶을 입력할경우의 처리!
using System;
namespace DataAndOperators
{
class Controller
{
static void Main(string[] args)
{
// 여행지 선택 질문 출력
Console.WriteLine("어디로 여행을 가고 싶나요?");
Console.WriteLine("1.제주도 2.코타키나발루 3.싱가포르 4.태국");
// 사용자 입력 받기
string input = Console.ReadLine();
// 입력값이 정수로 변환 가능한지 검사
if (int.TryParse(input, out int A))
{
// 입력된 숫자에 따라 다른 여행지 정보 출력
if (A == 1)
{
Console.WriteLine("제주도는 한국의 섬으로 비교적 방문이 쉽고 다양한 놀거리 / 먹거리가 준비되어 있습니다.");
}
else if (A == 2)
{
Console.WriteLine("코타키나발루는 말레이시아 사바주의 주도로, 말레이시아 동부 보르네오섬 최대의 도시입니다.");
}
else if (A == 3)
{
Console.WriteLine("싱가포르는 동남아시아, 말레이 반도의 끝에 위치한 섬나라이자 항구 도시로 이루어진 도시 국가입니다.");
}
else if (A == 4)
{
Console.WriteLine("태국은 중국문화, 말레이문화, 불교문화, 힌두문화, 이슬람 문화가 혼재되어 있습니다. 불교적인 모습을 많이 띄지만, 문화 자체는 색다르고 스펙트럼이 넓은 형태를 띄고 있어요.");
}
else
{
// 1~4 외의 숫자가 입력된 경우 처리
Console.WriteLine("1부터 4까지의 숫자 중 하나를 입력해주세요.");
}
}
else
{
// 입력값이 숫자가 아닌 경우
Console.WriteLine("1~4의 숫자를 입력해주세요.");
}
}
}
}
chapter4. 이름을 입력하게 하고. do while 반복문을 활용. 틀리면 다시 입력하게!
using System;
namespace DataAndOperators
{
class Controller
{
static void Main(string[] args)
{
// 올바른 이름이 입력되었는지 여부를 확인하는 플래그 변수 (초기값: false)
bool isSuccess = false;
// 사용자가 올바른 이름(3~10글자)을 입력할 때까지 반복
do
{
// 이름 입력 요청 메시지 출력
Console.WriteLine("이름을 입력해주세요(3~10글자)");
// 사용자가 입력한 이름을 변수에 저장
string name = Console.ReadLine();
// 입력된 이름의 길이 계산
int length = name.Length;
// 이전 출력 내용을 지워서 새로운 정보를 깔끔하게 보여줌
Console.Clear();
// 입력된 이름의 길이가 3글자 미만이거나 10글자 초과하면 오류 메시지 출력
if (length < 3 || length > 10)
{
Console.WriteLine("이름을 확인해주세요!");
// isSuccess는 그대로 false이므로 반복문 계속 실행
}
else
{
// 올바른 이름이 입력된 경우 인사 메시지 출력
Console.WriteLine($"안녕하세요 제 이름은 {name} 입니다.");
// 성공 플래그를 true로 설정하여 반복문 종료
isSuccess = true;
}
}
while (!isSuccess); // isSuccess가 false인 동안 계속 반복
}
}
}
오늘 공부 사항
-복습과 반복의 개념으로 복습해봄. 다음 학습부터는 달리기 실습도 진행해볼것!!
-주석달기 습관화를 위해. 주석을 사사건건 다 작성해보았음!
-나이 탓이든 군대 탓이든. 머리가 부족하면 깡 반복으로. 깡 따라하기로 해결한다!
-힌트 없이 해결하는데 성공. do-while반복문의 개념에서 멈칫 멈칫했지만. 다행히 극복!
'팀스파르타 내일배움캠프' 카테고리의 다른 글
| [사전캠프 13일차] 달리기반 해보기!! (0) | 2025.04.02 |
|---|---|
| [사전캠프 12일차] 유니티 빗물받는 르탄이 어플 만들어보기!! (1) | 2025.04.01 |
| [사전캠프] 게임 속 상호작용 분석하기 (1) | 2025.03.28 |
| [사전캠프 10일차] Unity활용 대망의 마지막! (1) | 2025.03.28 |
| [사전캠프 9일차] Unity활용 마저 해보기! (0) | 2025.03.27 |