오늘은 고민이 아니라. 제대로 해보는 시간! 머리가 나쁘면 여러번 해보기라도 하자!
using System;
namespace DataAndOperators
{
class Variable
{
static void Main(string[] args)
{
}
}
}
위 코드를 통해. 걷기의 여러 과정들을 각각 하나하나씩의 네임스페이스로 묶어버릴것이다!
각 과정내 챕터들은 class로 구분 예정!
Lv.1 데이터와 연산자!
chapter1. 데이터(변수) 다루기!
class Variable
{
static void Main(string[] args)
{
int level = 10;
int count = 100;
float percentage = 0.5f;
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();
string sf = f.ToString();
//숫자를 문자열로 변환
string strten = "10";
string strsix = "6.2";
int Iten = Convert.ToInt32(strten);
float Isix = float.Parse(strsix);
//문자열을 숫자(정수, 실수)로 변환
/*Convert와 Parse의 차이는 생각보다 간단한데,
Convert는 null값을 처리할 수 있지만, Parse는 null값을 처리할 수 없다.
거기에 추가적으로, convert는 다른 데이터 타입을 변환할 수 있지만, Parse는 string만 변환할 수 있다.*/
}
}
chapter2. 연산자 실습
class VariableandOperator
{
static void Main(string[] args)
{
int ten = 10;
ten += 7;
ten -= 3;
ten *= 2;
ten = (int)((float)ten * 1.5);
ten /= 3;
ten %= 4;
Console.WriteLine(ten);
//대입 연산자를 활용한 사칙연산
string name = "patric";
int year = 2025;
string introduce = $"안녕하세요. 제 이름은 {name}입니다.";
string thisYear = $"올해는 {year}년 입니다.";
//변수를 활용한 문자열의 작성
//문제의 의도는 더하기 연산자를 사용하는 것이지만, 보간을 활용하여 더 효율적으로 만듬
//더하기 부호를 사용할경우 "안녕하세요."+" 제 이름은 "+name+"입니다." 이렇게 쓰는 것과 같다.
int new_ten = 10;
bool result_1 = new_ten == 10;
bool result_2 = new_ten != 11;
bool result_3 = new_ten < 20;
bool result_4 = new_ten > 5;
Console.Write(result_1);
Console.Write(result_2);
Console.Write(result_3);
Console.Write(result_4);
//비교 연산자를 활용한 결과값 출력
//원래는 console.writeLine을 활용. 하지만, 결과값의 지나친 줄바꿈을 막기 위해 console.write를 사용
//문제의 의도는 그저 논리연산을 만들어 보는것이기 때문에. 전혀 무방.
/*사칙연산간의 우선순위는 너무 나도 쉬운 정답.
당연히 곱셈과 나눗셈이 먼저이고 덧셈과 뺄셈이 후순위. but 괄호가 있는 내부의 것을 먼저 계산하는 것이다.*/
}
}
chapter3. 연산자 실습
using System;
namespace DataAndOperators
{
class VariableandOperator
{
static void Main(string[] args)
{
Console.WriteLine("임의의 무언가를 입력해주십시오.");
string input = Console.ReadLine();
if ( int.TryParse( input, out year ) )
{
Console.WriteLine("입력받은 데이터는 숫자입니다.");
}
else if(bool.TryParse( input,out bool Bool))
{
Console.WriteLine("입력받은 데이터는 불리언입니다.");
}
else
{
Console.WriteLine("입력받은 데이터는 문자열입니다.");
}
//입력받는 데이터값을 TryParse를 통해 구분하는것이다. 즉. year은 인트로 출력되야 true가 되기 때문에. if는 조건들을 true로 받아들여 밑의 값을 실행한다.
Console.WriteLine("이번엔 임의의 숫자를 입력해주십시오.");
string input2 = Console.ReadLine();
if ( int.TryParse( input2,out int number))
{
if ( number < 100 )
{
Console.WriteLine($"{number}은(는) 100 보다 작은 수 입니다.");
}
else if( number >= 100)
{
Console.WriteLine($"{number}은(는) 100 보다 같거나 큰 수 입니다.");
}
}
else
{
Console.WriteLine("숫자가 아닙니다.");
}
//입력받는 데이터값이 숫자인지 아닌지를 1차적으로 구분. 그 조건문 안에서 숫자일경우에 또 100이상과 미만으로 나눠 출력한다
Console.WriteLine("이번엔 전혀 다른 임의의 숫자를 입력해주십시오.");
string input3 = Console.ReadLine();
if( int.TryParse( input3,out int num))
{
if( num % 2 != 0)
{
Console.WriteLine($"{num} 은(는) 홀수입니다.");
}
else
{
Console.WriteLine($"{num} 은(는) 짝수입니다.");
}
}
else
{
Console.WriteLine("숫자가 아닙니다");
}
//위와 동일하지만. 내부 조건이 변함. 짝수 홀수의 구분으로.
/*사실 언제 if를 쓰냐, 언제 case를 쓰냐는 간단하다.
switch 문은 선택지가 주어질때 사용한다. 즉, 내가 어떤 번호에 할당된 무언가를 충족할때, 무언가를 한다.
if문은 말 그대로 그런 한계가 없다. 정해진 조건이 아니라. 만약 이렇다면....이렇게 해라! 라고 지시하는것.*/
}
}
}
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();
//두개의 데이터를 입력하게 함.
if (!int.TryParse(input2, out int number2) && !int.TryParse(input, out int num2))
{
Console.WriteLine("두 데이터 모두 숫자가 아닙니다.");
}
//두 데이터가 둘 다(&&==and)숫자가 아닐경우 출력되게 함
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("하나의 데이터만 숫자입니다.");
}
//두 데이터 중 하나만(|| == or)숫자일 경우 출력되게 함
}
}
}
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();
//말 그대로, 퀴즈를 문자열로 출력후에, ReadLine으로 입력하게 해준것.
switch(Convert.ToInt32(input))
{
case 1:
Console.WriteLine("오답입니다!");
break;
case 2:
Console.WriteLine("오답입니다!");
break;
case 3:
Console.WriteLine("정답입니다!");
break;
case 4:
Console.WriteLine("오답입니다");
break;
}
//switch함수를 활용. 주어진 case 번호를 누르면, 해당 값이 출력되게 만들어줌.
//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();
//말 그대로, 질문을 문자열로 출력후에, 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
{
Console.WriteLine("1~4의 숫자를 입력해주세요.");
}
//기존 switch함수에서 변동을 주는것보다 빠르게.
//if 조건문을 통해 검증을 할수있도록 함.
//bool isint = int.TryParse(input, out num) 으로 한 후. switch를 그대로 사용해주는 방법도 있음(아마, 경우의 수가 많아져서 switch가 효율적일땐 이렇게 할듯)
//그러나, 굳이 변수 추가 할당이 필요없는 규모라고 판단. if를 통해 검증함
}
}
}
chapter4. 이름을 입력하게 하고. do while 반복문을 활용. 틀리면 다시 입력하게!
using System;
namespace DataAndOperators
{
class Controller
{
static void Main(string[] args)
{
bool isSuccess = false;
// 프로그램이 성공적으로 실행되었는지 확인하는 변수
// false로 시작하고, 올바른 이름이 입력되면 true로 변경됩니다
// 사용자가 올바른 이름을 입력할 때까지 반복
do
{
// 사용자에게 이름 입력 안내 메시지 출력
Console.WriteLine("이름을 입력해주세요(3~10글자)");
// 사용자가 입력한 이름을 name 변수에 저장
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반복문의 개념에서 멈칫 멈칫했지만. 다행히 극복!
'팀스파르타 내일배움캠프' 카테고리의 다른 글
| [사전캠프 8일차] Unity 활용 연습! (0) | 2025.03.26 |
|---|---|
| [사전캠프 7일차] 오목 게임 기획 (4) | 2025.03.25 |
| [사전캠프 6일차] Unity 활용연습 (0) | 2025.03.24 |
| [사전캠프 5일차] Unity 활용해보기 복습 + C# 걷기 복습! (0) | 2025.03.21 |
| [사전캠프 4일차] Unity 활용해보기! 2회차! (1) | 2025.03.20 |