방명록
- C# #1 프로그래밍 기본 요소, 변수, 자료형, 연산자와 문자열 처리2023년 08월 14일 15시 00분 04초에 업로드 된 글입니다.작성자: noun06
내배캠 TIL 11
기본 코드 구조
- using System : System 네임스페이스를 사용하기 위한 코드이며 "Console." 클래스 사용을 위해 필요.
- namespace HelloWorld : 코드의 구성에 사용되며 클래스 등의 일종의 컨테이너(그룹화 하는 역할).
- class Program : "Program"이라는 이름의 C# 클래스를 정의하는 키워드.
- static void Main() : 프로그램이 시작할 때 자동으로 호출되는 메서드.
- Console.WriteLine("Hello World!"); : 콘솔에 "내용" 출력하는 코드.
// Hello World.cs using System; namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }
콘솔 출력
- Console.WriteLine() : 인수로 전달된 값을 출력하고 줄바꿈 문자열 추가.
- Console.Write() : Console.WriteLine()과 유사하지만 줄바꿈 문자열을 추가하지 않음.
Console.WriteLine("Hello World!"); Console.WriteLine(10); [출력] Hello World! 10 Console.Write("Hello! "); Console.Write("We are Learning "); [출력] Hello! We are Learning
이스케이프 시퀀스(Escape Sequence)
- 문자열 내에 특정 문자를 출력하거나 포함시키기 위해 사용하는 특별한 문자 조합.
\' 작은 따옴표 삽입 \" 큰 따옴표 삽입 \\ 역슬래시 삽입 \n 줄바꿈 삽입 \r 현재 줄 맨앞으로 이동 \t 탭 사입 \b 백스페이스 삽입 주석(Comments)
- 프로그램의 실행에 영향을 미치지 않는 텍스트로, 코드의 의도나 동작을 설명하거나 정보를 전달할 때 사용.
- VS에서의 단축키 : ctrl + k + c / ctrl + k + u
//변수 a 를 선언 int a; /*이것은 여러 줄 주석입니다. 하지만 //를 많이 사용합니다.*/
자료형(Data Type)
- 변수가 가질 수 있는 값의 종류와 메모리 저장 방식.
- 메모리의 효율적인 사용, 정확한 데이터표현, 코드 안정성을 위해 세분화하여 사용함.
- 아래 표는 주로 사용되는 자료형들임.
int 정수형 -2,147,483,648 ~ 2,147,483,647 long 정수형 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 float 실수형 ±1.5 × 10^-45 ~ ±3.4 × 10^38 double 실수형 ±5.0 × 10^-324 ~ ±1.7 × 10^308 char 문자형 유니코드 문자 string 문자열 유니코드 문자열 bool 논리형 유니코드 문자 리터럴(literal)
- 프로그램에서 상수 값을 나타내는 고정된 값을 의미, 각 자료형 마다의 표기법이 존재.
int num = 10; float f = 3.14f; char c = 'A'; string str = "Hello, World!";
변수의 선언과 초기화
- 변수(Variables) : 데이터를 저장하고 사용하기 위한 할당받은 메모리 공간.
- 변수의 선언 : 변수의 이름을 지정하고, 자료형을 명시하는 단계.
int myNumber;
- 변수의 초기화 : 변수에 값을 할당하는 단계. 할당 연산자(=)를 사용하여 값을 대입.
myNumber = 42; // 변수 myNumber에 42를 할당하여 초기화
- 변수의 선언과 초기화는 동시에 가능.
변수명
- 키워드 : 프로그래밍에서 이미 예약되어있는 단어로 특정 의미나 기능을 나타내기 위해 사용.
- 식별자 : 변수, 메서드, 클래스, 인터페이스 등에 사용되는 이름으로 키워드의 이름을 사용할 수 없음.
- 코드 컨벤션 : 개발자들 사이의 약속된 코드 작성 규칙, 가독성 향상 및 쉬운 유지 보수를 위해 사용.
PascalCase 클래스, 메서드, 프로퍼티 이름 등에 사용 단어의 첫글자는 대문자로(ClassName, MethodName) camelCase 변수, 매개변수, 로컬 변수 이름등에 사용 단어의 첫글자는 소문자로(varaibleName, parameterName) - 위 표는 식별자 표기법 관련 사항이며, 이외에도 들여쓰기, 중괄호 위치, 빈 줄 사용, 주석 등의 코드 컨벤션이 있음.
형변환
- 형변환(Type Casting) : 자료형의 값을 다른 자료형으로 변환하는 과정으로, 다른 자료형 간의 연산, 할당 시 필요.
- 명시적 형변환(Explicit Type Conversion) : 의도적으로 자료형을 변환하는 경우. (데이터 손실에 주의)
int num1 = 10; long num2 = (long)num1; // int를 long으로 명시적 형변환
- 암시적 형변환(Implicit Type Conversion) : 자동으로 자료형을 변환하는 경우. (보통 작은 자료형에서 큰 자료형 변환)
int num1 = 10; float num2 = 3.14f; float result = num1 + num2; // int형과 float형의 덧셈에서 float형으로 암시적 형변환
콘솔 입력
- Console.ReadLine() : 콘솔에서 사용자의 텍스트 입력을 받을 때 사용. 사용자가 입력한 값을 문자열로 반환.
- 사용자가 입력한 값을 문자열로 반환하므로, 숫자나 논리형의 경우 형변환이 필수적임.
Console.Write("이름을 입력하세요: "); string name = Console.ReadLine(); // 사용자의 입력을 받아 문자열로 저장 Console.WriteLine("안녕하세요, " + name + "님!"); // 입력받은 이름을 사용하여 출력
- string.Split() : 여러 개의 값을 한줄에 입력받고 싶을 때 사용. 특정 구분자를 기준으로 문자열을 조각으로 나누어 처리
Console.Write("Enter two numbers: "); string input = Console.ReadLine(); // "10 20"과 같은 문자열을 입력받음 string[] numbers = input.Split(' '); // 문자열을 공백으로 구분하여 배열로 만듦 int num1 = int.Parse(numbers[0]); // 첫 번째 값을 정수로 변환하여 저장 int num2 = int.Parse(numbers[1]); // 두 번째 값을 정수로 변환하여 저장 int sum = num1 + num2; // 두 수를 더하여 결과를 계산 Console.WriteLine("The sum of {0} and {1} is {2}.", num1, num2, sum); [출력] Enter two numbers: 10 20 The sum of 10 and 20 is 30.
var 키워드
- var을 사용하여 변수를 선언하면 변수의 자료형이 초기화하는 값의 자료형에 따라 자동으로 결정.
산술 연산자
- 숫자를 대상으로 사용.
+ 덧셈 - 뺄셈 * 곱셈 / 나눗셈 % 나머지 관계 연산자
- 두 값을 비교하여 참 혹은 거짓 값을 반환.
== 같음 != 다름 > 큼 < 작음 >= 크거나 같음 <= 작거나 같음 논리 연산자
- 참 혹은 거짓 값을 대상으로 사용.
&& AND || OR ! NOT 비트 연산자
- 데이터의 비트 단위로 연산을 수행.
& (AND) 두 비트 값이 모두 1일 때 1을 반환 | (OR) 두 비트 값 중 하나라도 1일 때 1을 반환 ^ (XOR) 두 비트 값이 서로 다를 때 1을 반환 ~ (NOT) 비트 값의 보수(complement)를 반환 << (왼쪽 시프트) 비트를 왼쪽으로 이동 >> (오른쪽 시프트) 비트를 오른쪽으로 이동 복합 대입 연산자
- 변수에 연산을 수행한 결과를 저장하는 연산자.
+= x += y; %= y; -= x -= y; x = x - y; *= x -= y; x = x * y; /= x /= y; x = x / y; %= %= y; x = x / y; 증감 연산자
- 변수의 값을 1씩 증가시키거나 감소시키는데 사용.
- 후위 증감 연산자 : 변수의 값을 먼저 사용한 후 값을 변경.
- 전위 증감 연산자 : 변수의 값을 변경한 후에 값을 사용.
++ 1 증가 -- 1 감소 연산자 우선순위
- 괄호 → 단항 연산자 → 산술 연산자 → 시프트 연산자 → 관계 연산자 → 논리 연산자 → 대입 연산자
문자열 처리 기능 및 메서드
- 문자열 생성
string str1 = "Hello, World!"; // 리터럴 문자열 사용 string str2 = new string('H', 5); // 문자 'H'를 5개로 구성된 문자열 생성
- 연결
string str1 = "Hello"; string str2 = "World"; string str3 = str1 + " " + str2; //두 문자열을 공백으로 구분하여 연결한 문자열 str3
- 분할
string str = "Hello, World!"; string[] words = str.Split(','); //str을 (,)로 구분하여 분할한 문자열 배열 words
- 검색
string str = "Hello, World!"; int index = str.IndexOf("World"); //"World" 문자열의 첫번째 인덱스를 찾아 index 변수에 저장 //7 출력
- 대체
string str = "Hello, World!"; string newStr = str.Replace("World", "Universe"); //"World" 문자열을 대체한 새로운 문자열 newStr
- 문자열을 숫자로 변환
string str = "123"; int num = int.Parse(str); //문자열 str을 정수형 숫자로 변환 후 num에 저장
- 숫자를 문자열로 변환
int num = 123; string str = num.ToString(); //정수형 숫자 num을 문자열로 변환 후 str에 저장
- 문자열 값 비교
string str1 = "Hello"; string str2 = "World"; bool isEqual = str1 == str2; //두 문자열 비교 후, isEqual 변수에 결과 저장
- 문자열 대소 비교
string str1 = "Apple"; string str2 = "Banana"; int compare = string.Compare(str1, str2); //두 문자열 대소 비교 후 compare 변수에 결과 저장, 비교의 기준은 사전적인 순서. //음수값 반환 시 첫번째가 두번째보다 작음, 0 반환 시 같음, 양수값 반환 시 첫번째가 두번째보다 큼.
- 포멧팅
string name = "John"; int age = 30; string message = string.Format("My name is {0} and I'm {1} years old.", name, age); //문자열 형식화 string message = $"My name is {name} and I'm {age} years old."; //문자열 보간
실습 [1]
- 이름과 나이를 입력 받고 출력하는 코드를 작성하세요.
namespace NameAge { internal class Program { //이름과 나이를 입력 받고 출력 static void Main(string[] args) { Console.Write("이름을 입력하세요: "); string name = Console.ReadLine(); Console.Write("나이를 입력하세요: "); int age = int.Parse(Console.ReadLine()); //정수형 변환 Console.WriteLine("안녕하세요 {0}!, 당신은 {1} 세 이군요.", name, age); } } }
실습 [2]
- 두 수를 입력받고 사칙연산의 결과를 출력하세요.
namespace Calculator { internal class Program { //두 수를 입력 받고 사칙연산의 결과를 출력하는 계산기 static void Main(string[] args) { Console.Write("첫번째 수를 입력하세요: "); int firstNum = int.Parse(Console.ReadLine()); Console.Write("두번째 수를 입력하세요: "); int secondNum = int.Parse(Console.ReadLine()); Console.WriteLine("더하기: {0}", firstNum + secondNum); Console.WriteLine("빼기: {0}", firstNum - secondNum); Console.WriteLine("곱하기: {0}", firstNum * secondNum); Console.WriteLine("나누기: {0}", firstNum / secondNum); } } }
실습 [3]
- 섭씨온도를 입력받아, 화씨온도로 변환하는 프로그램.
namespace TemperatureConverter { internal class Program { //섭씨온도를 화씨온도로 변환 static void Main(string[] args) { Console.Write("섭씨 온도를 입력하세요: "); int tempCint = int.Parse(Console.ReadLine()); int tempFint = (tempCint * 9 / 5) + 32; Console.Write("변환된 화씨온도: {0}", tempFint); } } }
실습 [4]
- 키(m)와 체중(kg)를 입력받아, BMI 지수를 계산하는 프로그램.
namespace BMI { internal class Program { //BMI 지수 계산 static void Main(string[] args) { Console.Write("키(m): "); float height = float.Parse(Console.ReadLine()); Console.Write("체중(kg): "); float weight = float.Parse(Console.ReadLine()); float bmi = weight / (float)Math.Pow(height, 2); // Math.Pow(a, b) == a^b Console.WriteLine("당신의 BMI 지수는: {0}.", bmi); } } }
'C#' 카테고리의 다른 글
C# #5 클래스, 객체, 상속, 다형성 (0) 2023.08.16 C# #4 메서드와 구조체 (0) 2023.08.15 C# #3 배열과 컬렉션 (0) 2023.08.15 C# #2 조건문과 반복문 (0) 2023.08.14 C# #0 - 간단한 예습 (0) 2023.08.11 다음글이 없습니다.이전글이 없습니다.댓글