[Hello Coding] Chapter3, Chapter4 정리
Chapter 3. 값을 바꿀 필요가 없다면, 상수(그리고 값의 종류)
1. 상수란 무엇인가?
constant (형) 변하지 않는, (명) 변하지 않는 것
➡ 상수(constant): 프로그램을 실행하는 중에 변하지 않는 값
아래 코드에서 "바구니 안에 담긴 사과의 개수: ", 12, "사과 바구니의 무게: ", 1.32 모두 프로그램을 싱행하는 중에는 전혀 바뀌지 않으므로 상수임.
즉, 상수는 숫자에만 국한되는 것이 아니라 문장도 포함됨
Console.Write("바구니 안에 담긴 사과의 개수: ");
Console.WriteLine(12);
Console.Write("사과 바구니의 무게: ");
Console.WriteLine(1.32);
2. 상수의 종류
- 정수형
수학에서 정수란 자연수(양의 정수), 0, 0보다 작은 수(음의 정수)를 통칭하는 용어
➡ 정수형 상수: 소수점이 없는 숫자를 나타내는 상수 - 실수형
수학에서 실수는 유리수(비로 표현되는 수)와 무리수(비로 표현되지 않는 수)를 통칭하는 용어.
즉, 실제로 존재할 수 있는 수
➡ 실수형 상수: 소수점이 있는 숫자를 표현하는 상수 - 문자열형
문자: 인간의 언어를 사용하는 시각적 기호 체계 ex) 가, 나, 다, a, b, c 등
문자열: 여러 문자를 한 줄로 세워놓은 것
3. 상수에 이름을 붙이자
- string
string appleCountDescription = "바구니 안에 담긴 사과의 개수: ";
Console.Write(appleCountDescription);
위 코드에서 appleCountDescription과 "바구니 안에 담긴 사과의 개수: " 사이의 =는 같다는 의미가 아님.
"바구니 안에 담긴 사과의 개수: "에 appleCountDescription이라는 이름을 붙여주는 역할
appleCountDescription 앞의 string은 문자열형 상수를 의미함
※string이 문자열을 뜻하는 이유: 처음에는 글자를 줄줄이 늘어놓았다는 의미로 a string of characters라고 하다가 이걸 string으로 줄임
- int
int appleCount = 12;
Console.WriteLine(appleCount);
appleCount앞의 int는 정수형 상수를 의미함
- double
double basketWeight = 1.32;
Console.WriteLine(basketWeight);
basketWeight앞의 double은 실수형 상수를 의미함
- 정리
즉, 상수에 이름을 붙일 때는 아래 문법을 따름<상수의 종류> <상수의 이름> = <상수>;
4. 왜 상수에 이름을 붙일까?
- 상수에 이름을 붙여 사용하는 이유
- 코드를 읽기 쉽다.
- 실수를 줄일 수 있다.
- 같은 값을 여러 번 넣을 때 편하다.
기초 문제
3-1. 다음 상수의 종류는 무엇일까요?
- 314
- "314"
- 24.78
- "24.78"
- "우하하"
나의 답↓
- 정수
- 문자열
- 실수
- 문자열
- 문자열
3-2. 다음 코드를 실행하면 어떤 결과가 나올까요?
using System;
namespace Constant
{
class Program
{
static void Main(string[] args)
{
string name = "홍길동"
Console.Write("이름: ");
Console.WriteLine(name);
int age = 23;
Console.Write("나이: ");
Console.WriteLine(age);
}
}
}
나의 답
이름: 홍길동
나이: 23
3-3. 다음 실행 화면처럼 출력하려고 합니다.
다음 코드의 (1), (2), (3)에 어떤 코드를 넣어야 할까요?
using System;
namespace question
{
internal class Program
{
static void Main(string[] args)
{
(1)
Console.WriteLine(stringOut);
double number1 = 23.31;
(2)
(3)
Console.WriteLine(success);
}
}
}
나의 답
(1) string stringOut = "문자열 출력"; (2) Console.WriteLine(number1); (3) string success = "출력 성공";
심화 문제
3-1. 다음 코드는 상수를 그대로 사용해서 출력하고 있습니다. 상수에 이름을 붙이고 그 이름을 사용하도록 수정하세요. (힌트: 정수형은 int, 실수형은 double, 문자열은 string을 사용하세요.)
namespace question
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine(286);
Console.WriteLine(3.141592);
Console.WriteLine("문자열도 있음");
}
}
}
나의 답
··· int n = 286; Console.WriteLine(n); double pi = 3.141592; Console.WriteLine(pi); string s = "문자열도 있음"; Console.WriteLine(s);
3-2. <생략>
Chapter 4. 내 맘대로 값을 바꾸고 싶다면, 변수 그리고 연산
1. 컴퓨터란 무엇인가?
<생략>
2. 사칙연산, 연산의 기본
- 프로그래밍에서 사칙연산
- 덧셈: 값 + 값
- 뺄셈: 값 - 값
- 곱셈: 값 * 값
- 나눗셈
- 몫: 값 / 값
- 나머지: 값 % 값
3. 문자열 연산
- 문자열의 덧셈: "문자열1" + "문자열2" ➡ 문자열1문자열2의 형태로 출력
※ 덧셈 외에 다른 연산은 불가능함
4. 변수란 무엇인가?
- 변수(variable) = 바꾸다(vary) + ~할 수 있는(able): 바뀔 수 있는 무언가
상수와 마찬가지로 변할 수 있는 문자열과 상수 모두 변수라고 칭함
변수 사용 규칙
1. 최종 값이 입력되는 변수명을 등호 왼쪽에 배치한다.
2. 변수에 아무 값도 넣지 않고 출력할 수 없다.
5. 디버깅: 버그를 잡아보자
디버그와 디버깅
- debuging = de- + bug + ~ing
프로그램의 문제점을 버그, 버그를 없애는 작업을 디버그
중단점
- 중단점(breakpoint): 프로그램 실행을 특정 지점에서 잠시 중단시키기 위해 설정하는 지시자
디버깅 시작하기
<생략>
기초문제
4-1. 다음 사칙연산의 결과를 출력하는 코드를 작성하세요. 결과만 출력하세요.
- 10 + 5
- 20 - 10
- 4 x 7
- 20 / 7의 몫과 나머지
나의 답
Console.WriteLine(10 + 5); Console.WriteLine(20 - 10); Console.WriteLine(4 * 7); Console.WriteLine(20 / 7); Console.WriteLine(20 % 7);
4-2. 다음 문자열 연산의 결과를 출력하는 코드를 작성하세요.
"안녕" + "하세요"
나의 답
Console.WriteLine("안녕" + "하세요");
4-3. 다음 코드는 어떤 결과를 출력할까요? 코드 실행 전에 실행 화면에 적어보세요.
int number1 = 20;
int number2 = 5;
int number3 = 3;
int number4 = 13;
int number5;
number1 = number1 + number2;
number2 = number3 + number4;
number4 = number1 - number4;
number3 = number2 / number4;
number5 = number2 % number4;
Console.WriteLine(number1);
Console.WriteLine(number2);
Console.WriteLine(number3);
Console.WriteLine(number4);
Console.WriteLine(number5);
나의 답
25
16
1
12
4
4-4. (4-2)*16+2를 구하기 위해서 다음과 같은 코드를 작성했습니다. (1), (2)에 필요한 코드를 채우세요.
(1)
number1 = number1 * 16;
(2)
Console.WriteLine("(4 - 2) * 16 + 2");
Console.WriteLine(number1);
나의 답
(1) int number1 = 4 - 2; (2) number1 = number1 + 2;
심화문제
4-1. <생략>
4-2. 주머니에 동전이 10개 들어 있습니다. 아람이에게 원하는 만큼 동전을 가져가라고 하니 손을 넣어 절반을 가져가더니 죄책감을 느꼈는지 1개를 도로 넣습니다. 그다음에는 우람이가 남은 동전의 절반을 꺼내더니 충분치 못했다 생각했던지 2개를 더 꺼내 갑니다. 아람이가 가져간 동전과 우람이가 가져간 동전 그리고 주머니에 남은 동전이 몇 개 인지 출력하는 프로그램을 작성하세요.
나의 답
int pocket = 10; int aram = pocket / 2 - 1; pocket = pocket - aram; int uram = pocket / 2 + 2; pocket = pocket - uram; Console.WriteLine(aram); Console.WriteLine(uram); Console.WriteLine(pocket);