📖/Hello Coding 프로그래밍

[Hello Coding] Chapter5, Chapter6 정리

모팔구 2023. 3. 24. 11:00
728x90
반응형

Chapter 5. 실행 중인 프로그램에 명령을 내리려면, 키보드 입력

1. 입력이 필요한 이유

  • 입력: 빌드가 끝난 프로그램에 사용자가 값을 넣어주는 것, 사용자가 넣어준 값
    프로그램에 글씨를 쓰는 것, 웹페이지에서 버튼을 클릭하는 것, 스마트폰을 터치하는 것 모두 입력.
    즉, 컴퓨터에 사용자가 정보를 넘기는 모든 행위가 입력임.

 

2. 키보드 입력

  • Console.ReadLine(): 키보드에 입력을 받을 떄 사용하는 함수
    사용법 ex) string userInput = Console.ReadLine(); 
    1. Console.ReadLine() 함수로 사용자의 키보드 입력을 받는다. 
    2. 1에서 받은 입력값을 userInput이라는 변수에 넣어준다.
    ※userInput은 문자열 값만 저장할 수 있다.

 

3. 문자열 변환

  • int.Parse(): 문자열을 정수로 변환할 때 사용하는 함수. Parse (동) 해석하다
    int.Parse()에서 앞에 int는 정수를 의미, parse는 문자열을 해석하라. 즉, 문자열을 숫자로 해석하라는 의미
  • 실수를 처리하고 싶다면 double.Parse()로 바꾸면 됨.

※ 간략하게 표현하기

string userInput = Console.ReadLine();
int number = int.Parse(userInput);
// 위 아래 코드는 같은 코드이다.
int number = int.Parse(Console.ReadLine());

 

기초 문제

5-1. 다음 코드의 (1), (2)에 어떤 코드를 넣어야 할까요?

Console.WriteLine("첫 번째 숫자를 입력하세요.");
(1) 
int number1 = int.Parse(userInput1);
Console.WriteLine("두 번째 숫자를 입력하세요.");
string userInput2 = Console.ReadLine();
(2) 

Console.Write(number1);
Console.Write(" + ");
Console.Write(number2);
Console.Write(" = ");
Console.WriteLine(number1 + number2);

나의 답

(1) string userInput1 = Console.ReadLine();
(2) int number2 = int.Parse(userInput2);

 

5-2. 다음 코드에 버그가 있습니다. 찾아서 고치세요.
<생략>

 

5-3. 다음 코드에서 문자열형 변수 userInput을 없애보세요.
<생략>

 

심화 문제

5-1. 문자열 userInput1과 userInput2를 키보드 입력으로 받아 실수 number1과 number2로 변환한 다음 사칙연산(+, -, *, /)의 결과를 각각 화면에 출력하는 프로그램을 작성하세요.

나의 답

Console.WriteLine("첫번째 값을 입력하세요: ");
string userInput1 = Console.ReadLine();
int number1 = int.Parse(userInput1);
Console.WriteLine("두번째 값을 입력하세요: ");
string userInput2 = Console.ReadLine();
int number2 = int.Parse(userInput2); 

Console.Write("+: ");
Console.WriteLine(number1 + number2);
Console.Write("-: ");
Console.WriteLine(number1 - number2);
Console.Write("*: ");
Console.WriteLine(number1 * number2);
Console.Write("/: ");
Console.WriteLine(number1 / number2);

 

5-2. 위 문제에서 나누기의 분모가 되는 값에 0을 넣으면 어떻게 될까요?

<생략>

 

5-3. 동전이 10개 들어 있는 주머니가 있습니다. 어머니께서 주머니에 동전을 몇 개 더 넣고 아람이와 우람이에게 원하는 만큼 동전을 가져가라고 할 겁니다. 이것을 프로그램으로 작성하세요. 프로그램이 실행되면 우선 주머니에 들어 있는 동전의 개수를 출력하고 어머니께서 넣을 동전의 개수와 아람이, 우람이가 꺼낼 동전의 개수를 키보드 입력으로 받습니다. 그다음 주머니에 남아 있는 동전의 개수를 계산해서 화면에 출력하면 됩니다. 아래는 문제의 예제 실행 화면입니다.

나의 답

Console.WriteLine("주머니에는 동전이 10개 들어 있습니다.");
Console.WriteLine("어머니는 몇 개의 동전을 주머니에 넣었나요?");
int momCoin = int.Parse(Console.ReadLine());
Console.WriteLine("아람이는 몇 개의 동전을 꺼냈나요?");
int aramCoin = int.Parse(Console.ReadLine());
Console.WriteLine("우람이는 몇 개의 동전을 꺼냈나요?");
int uramCoin = int.Parse(Console.ReadLine());

int pocketCoin = 10;
pocketCoin = pocketCoin + momCoin - aramCoin - uramCoin;

Console.Write("주머니에 남아 있는 동전의 개수는 ");
Console.Write(pocketCoin);
Console.WriteLine("개 입니다.");

 

Chapter 6. 상황에 따라 결과가 달라야 한다면, 조건문

1. 조건문이 필요한 이유

<생략>

 

2. 비교연산자

  • 비교연산자
비교연산자 설명 참 or 거짓
> 왼쪽 항이 커야 참이다. 4 > 1
< 오른쪽 항이 커야 참이다. 2 < 4
<= 오른쪽 항이 크거나 같아야 참이다. 4 <= 5
>= 왼쪽 항이 크거나 같아야 참이다. 4 >= 4
== 오른쪽 항과 왼쪽 항이 같으면 참이다. 3 == 1 거짓 (3==3이 참)
!= 오른쪽 항과 왼쪽 항이 같지 않으면 참이다. 3 != 1
  • 논리 자료형(bool): 참과 거짓을 저장하는데 사용하는 변수의 종류.
    bool은 boolean의 줄임말로, 조지 불(George Boole)이라는 영국 수학자가 만든 불 대수(Boolean algebra)에서 따온 말.
    논리 자료형이 저장하는 값은 true(참)와 false(거짓) ➡ 조건식의 결과를 저장하거나 결과를 검사할 때 사용

 

3. 만약 그렇다면

  • if: 만약 ~라면. 기본식: if (조건식) { 조건을 만족할 경우 실행 }
    실행 순서 
    1. 소괄호 안의 조건식이 참인지 검사한다. 
    2. 참이면 바로 다음에 오는 중괄호 사이의 코드를 실행한다. 
    3. 거짓이면 중괄호 사이의 코드를 실행하지 않고 중괄호가 닫힌 다음 줄부터 실행한다.

 

4. 만약 그렇지 않다면

  • else: 만약 그렇지 않다면. 단독으로 쓰이지 않고 if가 있어야 사용 가능.
  • else if

if(-else if-else)문의 기본형

if(조건문)
{
	조건을 만족할 경우 실행	
}
else if(다른 조건문)
{
	if 조건문이 거짓이고 else if 조건문이 참일 경우 실행
}
else
{
	if 조건문과 else if 조건문 모두 거짓일 경우 실행
}

 

  • if와 else if 비교
// if: inputOperator의 값이 무엇이든 간에 네번 비교함
// inputOperator에 -를 입력하면 두번째 조건문이 출력되겠지만 비교는 네번 모두 진행함
if (inputOperator == "+")
{
	Console.WriteLine(number1 + number2);
}
if (inputOperator == "-")
{
	Console.WriteLine(number1 - number2);
}
if (inputOperator == "*")
{
	Console.WriteLine(number1 * number2);
}
if (inputOperator == "/")
{
	Console.WriteLine(number1 / +number2);
}
// else if: 조건이 참이면 다른 조건문을 실행하지 않음
// inputOperator에 -를 입력한다면 두번째 조건문에서 멈춤
if (inputOperator == "+")
{
Console.WriteLine(number1 + number2);
}
else if (inputOperator == "-")
{
Console.WriteLine(number1 - number2);
}
else if (inputOperator == "*")
{
Console.WriteLine(number1 * number2);
}
else if (inputOperator == "/")
{
Console.WriteLine(number1 / +number2);
}

 

5. 논리연산

논리곱연산자(&&)

  • 논리곱연산자(&&): 여러 조건이 모두 참인지 검사할 떄 사용. 연산자 좌우의 값이 전부 참이면 결과는 참기본형
    조건식1 && 조건식2 && 조건식 3 ...

 

논리합연산자(||)

  • 논리합연산자(||): 연산자 좌우의 값 중 하나라도 참이면 결과가 참. 모두 거짓인 경우에만 거짓기본형
    조건식1 || 조건식2 || 조건식 3 ...

 

논리부정연산자(!)

  • 논리부정연산자(!): 하나의 조건식 앞에 사용해서 그 조건식의 참, 거짓 여부를 반대로 바꿈
    즉, 조건식이 참이면 거짓으로, 거짓이면 참으로 바꿈기본형
    !(조건식) << 괄호 필수

 

기초문제

6-1. 다음 조건식은 참인가요? 거짓인가요?
3 <= 5
!(5 == 5)
!(3 < 2)
1 > 0

나의 답
T
F
T
T

 

6-2. 다음 코드를 실행해서 3을 입력하면 어떤 결과가 출력될까요?
<생략>

 

6-3. 다음은 10등 미만이거나 90점을 초과하면 "A입니다."를 출력하는 프로그램입니다. 논리연산을 이용하도록 조건문을 수정하세요.
(힌트: 논리합연산자(||)를 사용하세요.)
<생략>

 

심화문제

6-1. [코드 6-3]을 else if를 사용하도록 수정하고 나머지 연산(%)도 추가하세요.
(힌트: 6-4절에 나온 예제를 참고하세요.)
<생략>

 

6-2. 정수형 변수 userInput에 사용자의 입력을 받아서 userInput이 20보다 크고 3의 배수이면 "20보다 큰 3의 배수입니다."를 출력하는 프로그램을 작성하세요.
(힌트: userInput%3이 0이면 3의 배수입니다.)

나의 답

int userInput = int.Parse(Console.ReadLine());  
if (userInput > 20 && userInput % 3 == 0) // userInput % 3 = 0으로 입력하지 않도록 주의
{
	Console.WriteLine("20보다 큰 3의 배수입니다.");
}
else // 임의로 추가
{
	Console.WriteLine("20보다 큰 3의 배수가 아닙니다.");
}

 

 

728x90
반응형