1일1코딩.C# - 초보코딩

CS1017 진실과 거짓

낭만독타 2020. 10. 27. 19:32

1. 이번 시간은

 

지난 시간(CS1016 나누고 나머지는?)에 이어 IF문 연습을 더 해볼 것입니다. 지난 시간의 폼(Form)은 동일하고 코드만 다르게 작성합니다. 그리고 true(참, 진실)와 false(거짓)의 2가지만의 데이터를 갖는 bool을 사용하데 특히, IF문에서 어떻게 사용하는 지를 보게 될 것입니다. 이번시간의 주학습도 지난 시간에 이어 IF문 연습입니다.

 


2. 폼의 구성

2.1 텍스트박스를 도구상자에서 TextBox를 선택하여 가져왔습니다. 자동으로 이름이 textBox1로 부여되었습니다. textBox1를 복사, 붙여넣기하여 textBox2를 만들었습니다. 속성에서 Textaglien MiddleCenter로 했습니다.

2.2 라벨을 도구상자에서 Label을 가져왔습니다. 자동으로 이름이 label1로 부여되었습니다. 라벨을 모양을 조금 내었습니다. Autosize False, Bordersystle FixedSingle, Font 12pt, Textaglien MiddleCenter.

2.3 버튼을 도구상자에서 가져왔습니다. 자동으로 이름이 button1로 부여되었습니다. 

button1의 속성에서 Text를 나누고 나머지로 바꾸었습니다

폼 구성의 방법은 CS1002 ~ CS1010을 참고하시면 되겠습니다.

 

 


3. 코드 작성

3.1 버튼 클릭시 코드가 해야 하는 일

a. 변수 정수 3개 선언 : su1(나누어 지는 수), su2(나누는 수), nam(나머지의 수) 

b. 변수 bool 1개 선언 : check

c. 만약 텍스트박스2(나누는 수)에 아무런 데이터가 없다면 변수 check에 false를 넣는다.

d. 만약 덱스트박스2(나누는 수)에 데이터가 있다면

   1) 만약 덱스트박스2(나누는 수)의 데이터가 0 이라면 변수 check에 false를 넣는다.

   2) 만약 덱스트박스2(나누는 수)의 데이터가 0 이 아니라면 변수 check에 true를 넣는다.

e. 만약 텍스트박스1(나누어 지는 수)에 아무런 데이터가 없다면 텍스트박스1에 "10"을 넣는다.

f. 만약 변수 check가 true이라면 

   1) 텍스트박스1의 데이터를 정수로 변화시켜 변수 su1에 보관한다.

   2) 텍스트박스2의 데이터를 정수로 변화 시켜 변수 su2에 보관한다.

   3) su1을 su2로 나누었을 때의 나머지를 변수 nam에 보관한다.

   4) 라벨1에 자세한 정보를 출력한다.

g. 만약 변수 check가 false이라면

   1) 라벨1에 "textBox2에 입력데이터가 없거나 0입니다!" 를 출력한다.

 

 


3.2 button1의 버튼 클릭 이벤트 생성

폼에서 button1을 두번 클릭(더블 클릭)하면 자동적으로 버튼 클릭 이벤트인 button1_Click() 가 만들어집니다. {} 사이에 코드를 작성합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
        private void button1_Click(object sender, EventArgs e)
        {
            int su1 = 0, su2 = 0, nam = 0;
            bool check;
 
            if (textBox2.Text.Length < 1)
            {
                check = false;
            }
            else
            {
                if (Convert.ToInt32(textBox2.Text) == 0)
                {
                    check = false;
                }
                else
                {
                    check = true;
                }
            }
 
            if (textBox1.Text.Length < 1)
            {
                textBox1.Text = "10";
            }
 
            if (check == true)
            {
                su1 = Convert.ToInt32(textBox1.Text);
                su2 = Convert.ToInt32(textBox2.Text);
                nam = su1 % su2;
                label1.Text = textBox1.Text + " / " + textBox2.Text + " 의 나머지는 "
                            + nam.ToString();
            }
            else if (check == false)
            {
                label1.Text = "textBox2에 입력데이터가 없거나 0입니다!";
            }
        }
cs

 


3.3 코드

라인 3 : int su1 =0, su2 =0, nam =0;

          변수 su1, su2, nam을 정수로 선언하며 그 초기값은 0 이라고 컴퓨터에게 알려줍니다.


라인 4 : bool check;

           bool은 true, false 2가지 중에 1가지만을 가질 수 있는 데이터타입(data type)입니다. 따라서 변수 check는 true, false 2가지 중에 1가지만을 갖습니다.


라인 6 ~ 20 : if(조건1){ . . . } else{ if(조건2){ . . . }else{ . . .} } 문입니다.


라인 6 ~ 9 : 만약 텍스트박스2(나누는 수)에 아무런 데이터가 없다면 check에 false를 넣습니다.


라인 12 ~ 15 : 텍스트박스2(나누는 수)에 데이터는 있지만 그 값이 0이라면 check에 false를 넣습니다.


라인 16 ~ 19 : 텍스트박스2(나누는 수)에 데이터는 있지만 그 값이 0이 아니라면 check에 true를 넣습니다.


라인 22 ~ 25 : 만약 텍스트박스1(나누어 지는 수)에 아무런 데이터가 없다면 텍스트박스1에 "10"을 넣습니다. 


라인 27 ~ 38 : if(조건1){ . . . } else if(조건2){ . . . } 문입니다.


라인 27 ~ 34 : 

라인 27 : 만약 check가 true라면

라인 29 : 텍스트박스1의 데이터를 정수로 변화 시켜 변수 su1에 보관하고,

라인 30 : 텍스트박스2의 데이터를 정수로 변화 시켜 변수 su2에 보관하고,

라인 31 : su1을 su2로 나누었을 때의 나머지를 변수 nam에 보관하고,

라인 32 ~ 33 : 라벨1에 자세한 정보를 출력합니다.


라인 35 ~ 38 : 

라인 35 : 만약 check가 false라면

라인 37 :  라벨1에 "textBox2에 입력데이터가 없거나 0입니다!"를 출력합니다.

 

 


4. 실행

4.1 입력데이터없이 그냥 버튼(나누고 나머지) 클릭

 

textBox1에 데이터가 없으면 강제로 "10"을 넣는다. (textBox1.Text = "10";)

label1은 textBox2에 입력데이터가 없거나 0입니다! 입니다. (label1.Text = "textBox2에 입력데이터가 없거나 0입니다!";)

조건(textBox2.Text.Length < 1)에 만족하여 check의 값이 false가 되었기 때문입니다.

 

 

 


4.2 텍스트박스1에 10, 텍스트박스2에 0을 입력하고 버튼(나누고 나머지) 클릭

label1은 textBox2에 입력데이터가 없거나 0입니다! 입니다. (label1.Text = "textBox2에 입력데이터가 없거나 0입니다!";)

조건(textBox2.Text.Length < 1)에는 만족하지 않았지만 또다른 조건(Convert.ToInt32(textBox2.Text) == 0)에 만족하여 check의 값이 false되었기 때문입니다.

 

 


4.3 텍스트박스1에 10, 텍스트박스2에 2를 입력하고 버튼(나누고 나머지) 클릭

label1은 10 / 2 의 나머지는 0 입니다. 문자 합치기입니다. textBox1.Text는 10, 문자열( / ), textBox2.Text는2, 문자열( 의 나머지는 ), nam.ToString()0

(label1.Text = textBox1.Text + " / " + textBox2.Text + " 의 나머지는 " + nam.ToString();)

조건(textBox2.Text.Length < 1)에는 만족하지 않았고 또다른 조건(Convert.ToInt32(textBox2.Text) == 0)에도 만족하지 않았기 때문에 check의 값이 true가 되었습니다.

 

 


4.4 텍스트박스1에 15, 텍스트박스2에 4를 입력하고 버튼(나누고 나머지) 클릭

 

label1은 15 / 4 의 나머지는 3 입니다. 문자 합치기입니다. textBox1.Text는 15, 문자열( / ), textBox2.Text는4, 문자열( 의 나머지는 ), nam.ToString()은 3

(label1.Text = textBox1.Text + " / " + textBox2.Text + " 의 나머지는 " + nam.ToString();)

조건(textBox2.Text.Length < 1)에는 만족하지 않았고 또다른 조건(Convert.ToInt32(textBox2.Text) == 0)에도 만족하지 않았기 때문에 check의 값이 true가 되었습니다.

 

 


5. 다음 시간에는

 

수고하셨습니다.


** 동영상 **

 

'1일1코딩.C# - 초보코딩' 카테고리의 다른 글

CS1016 나누고 나머지는?  (0) 2020.10.24
CS1015 길이가 얼마고?  (0) 2020.10.23
CS1014 숫자 나누기  (0) 2020.10.20
CS1013 숫자 곱하기  (0) 2020.10.17
CS1012 숫자 빼기  (0) 2020.10.16