처음 프로그램은 헬로우 월드로 했다면

간단한 변수와 사칙연산을 하는 프로그램을 만들어 볼게요

먼저 우리가 만들 프로그램부터 봅시다

5명의 스파르탄 병사의 세과목 을 임의로 저장하고 각각에 대하여 총점 및 평균을 계산하여 화면에 출력하고 일등한 사람을 구하여 그 사람의 번호를 출력하라.

단 동점인 경우 번호가 빠른 사람이 승리한 것으로 한다.




1.틀 알기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ScoreProcess
{
    class Program
    {
        static void Main(string[] args)
        {
 
        }
    }
}
 
cs

프로그램을 실행하면 Main 함수 {}안이있는 명령문을 실행합니다.

지금 이 프로그램을 실행하면 도스창(까만화면)에서 실행되는데 이 프로그램을 콘솔형 프로그램이라고 합니다.

Using 이나 namespace등은 class는 다음에 설명 하겠습니다.


2. 숫자 변수의 할당과 출력


C#에서 코드 한줄이 끝나면 끝네 ; 세미 콜론을 붙입니다. 한 라인에 여러개 쓸 수 있지만 보통 한라인에 한 개의 문장을 씁니다.

컴퓨터는 숫자와 문자를 구별하여 다룹니다. 변수는 저장할수 있는 데이터에 따라 구분하여 사용해야 합니다.

숫자형 변수는 int , float , double 등이 있고 문자형 변수는 다음 프로그램을 만들때 자세히 설명하겠지만 char ,string 등이 있습니다.

int , float , double로 나누는 이유는 더 메모리의 크기 때문인데요. 비유를 하자면 레고같은 것을 담을 수 있는 그릇 이라고 생각하시면 될듯 합니다.

예를들어 int라는 그릇에 너무 많은 레고(숫자)담으면 레고(숫자)가 넘치겠죠? 그래서 이렇게 넘치는 현상을(overflow)라고 합니다.

그러면 무조건 큰것만 쓰면 되지 않나요? 하시는 분들 있는데. 그릇이 클수록 숫자의 대한 정확도가 떨어지기도 하고 컴퓨터의 메모리를 많이 잡아먹기 때문에

적절하게 써줍시다!(라고 하지만 사실 지금 컴퓨터가 좋아져서 double로 써도 될듯한데 관습인지 습관인지 int형을 많이 쓰더라구요 이것에 대해서는 생각해봅시다!)

가장 많이 쓰이는 그릇 int 하고 이름을 지어줍시다

변수형 변수이름;

int a;

a라는 그릇을 만들어 주세요! 라고 하는 뜻입니다.

이렇게 그릇을 만들었으니 숫자를 넣어 볼까요? 넣고 싶은 숫자를 넣으면 됩니다

a = 8;

이런식으로요! 다른 친구들도 해볼까요?

int a;

float b;

double c;

a = 2;

b = 4.0f; //float는 float 그릇이에요! 라고 알려주는 f를 써줍니다.

c = 8;

이것을 도스창에 출력하고 싶다면?

앞에서 했던

Console.Writeline(a);

이렇게 해주면 8이 출력됩니다.


3. 그릇 여러개 만들기 - 배열


예를 들어 구구단을 만들어 볼게요 그럼 2단부터 9단까지 72개까지 숫자변수를 선언해야 하는데

int a,b,c,d.. 72개를 전부? 너무 불편하죠? 그걸 방지 하기 위해서 프로그래머들이 이런것들은 한꺼번에! 선언하자면서 배열을 만들어 놓았습니다.

연속된 변수들을 선언하는 것이죠 물론 숫자 변수는 int, float,double 이 가능하고 char,string 또한 가능합니다. 어떻게 사용할까요?

변수형[] 변수이름 = new 변수형[숫자];

int[] gugudan = new int[72];

gugudan 이라는 숫자 그릇이 72개가 선언되었어요  여기서 주의 할것은 컴퓨터는 숫자 0부터 세기 때문에

gugudan[0]~gugudam[71]까지 선언 됩니다! 만약 비슷한 변수라면 이렇게 선언하는 것이 좋겠죠?

어떤 변수든 선언하고 그 수를 정해주어야 합니다. 보통 0이나 1로 많이 합니다!

배열의 초기화는 어떻게 할까요?

int[] gugudan = { 2, 3, 4, 5, 6, 7, 8, 9};

이런식으로 합니다. 그럼 자동으로 gugudan[0] = 2 ,gugudan[1] = 3 이런식으로 저장됩니다.

배열의 길이 알기

만약 이렇게 배열이 하나라면 하나하나 기억하지만 만약 변수 수가 많으면 어떻게 할까요?

일일하게 기억하기 힘들겠죠? 그럴때 변수의 길이를 자동으로 알려주는 기능이 있습니다. 바로 Length 입니다.

어떤 배열이든 길이를 알고 싶을때 .Length를 붙여주면 됩니다.

에를 들어

int a;

a = gugudan.Length

이렇게 해주면 8이 나옵니다. 배열의 숫자를 일일하게 모를때 유용합니다!


4.사칙 연산 하기 와 주의점

이렇게 숫자들을 그릇에 넣을 수 있으니 그 숫자들을 조물딱 조물딱 해서 숫자를 변형 할수 있어야 겠죠?

(여담이지만 저는 프로그래밍은 데이터의 변형이라고 생각합니다. 선언해서 조물딱 조물딱 해서 제가 원하는 것을 만드는 것이 프로그래밍!)

+ 더하기 - 뺴기 * 곱하기 /나누기 %나머지 값만 구하기! 기본적으로 int 는 int끼리 float는 float끼리 사칙연산하는 것이 기본입니다.

하지만 프로그래밍을 하다보면 그렇지 않을수도 있죠? 그럴때는? 계산할때 변경해주면 됩니다! 예를들어

int  a;
int  b;
float c;
a = 3;
b = 2;

c=a/b;                      나머지는 버리기 때문에 1이 저장
c=(float)a/b;             1.5f가 저장됨
c=a/(float)b;             1.5f가 저장됨
c = (float)a/(float)/b; 1.5f가 저장됨

(원하는형)을 넣고 선언해주시면 됩니다!

5.변수 1찍 증가 하기와 감소하기

기본적으로 숫자변수 a값을 1씩 증가시킬때는

a = a+1;을 사용합니다

그런데 더 간단히 할수 없을까 하던중 네 더 간단히 할수 잇습니다.

a++;

a += 1;

이런식으로요 더 쉽고 간단하죠?

그럼 더하기도 되는데 빼기도 될까요?

네 됩니다

a--;

a -= 1;

아 그럼 곱하기나 나누기도 되냐구요?

1씩 곱하거나 1씩 나누는게 의미가 있을까요? *^^*

(여담입니다만 컴퓨터 언어 중에 C++이라고 있죠? 네 C언어에 +1을 했다는 의미에서 C++라고 붙였다고 하네요

본래 이름은 C withd Class라고 했다하네요

그럼 C++에 또 ++하면 C#이 되지 않을까? 하시는 (아래에 ++ 하면) 분들이 있으시다면... 그렇게도 말이 되지만

본래 의미는 음악에서 따왔다고 하네요)


6.반복 반복 하기 - for문

자 구구단을 봅시다 저 72개를 일일하게 숫자 넣고 계산하면 너무 시간낭비도 심하고 힘들겠죠?

컴퓨터는 계산기 내가 명령을 내릴테니 너는 반복하거라! 해서 나온게 for 입니다

for(처음값;이값이 될때까지;값을 변경해라)
{

}

예를 들어 C#을 100번 출력한다고 합시다

for(int i=0;i<100;i++)  // i를 0부터 i가 100이 될때 까지 i를 계속 하나씩 더해줍니다.
{
   Console.WriteLine("C#");
}
이렇게 하면 C#이 100번 출력됩니다.!

이렇게 비슷한 작업을 반복 수행 하고자 할때 사용합니다.

7.그릇을 여러개 만들어서 반복하기 배열과 for문

그럼 아까 여러개 보았던 배열과 for문을 같이 사용할수 있지 않을 까요?

각 배열에 1부터 100까지 숫자를 하나씩 넣어 볼게요!

int[] a = new int[100] //a 100개 만들기

for(int i=0;i<100;i++)

{

a[i] = i;

Console.writeLine(a[i]);

}

이렇게 하면 200줄을 써야 할지도 모르는 것을 6줄에 끝냈습니다!

이렇게 배열과 for문은 자주 쓰이니 잘 알아두셔요!

8. 이럴땐 이렇게 저럴땐 저렇게 if문

아내가 남편에게 말했습니다 올때 우유 사와! 아 계란도 있으면 6개 사오고~

컴퓨터도 이렇게 조건을 줄수 있습니다. 바로 if문입니다.

if(계란이 있으면)  //조건이 참일때
{
6개 사온다   //실행
}
else                 //조건이 참이 아닐때
{
그외에는 우유만 사온다 //실행
}

이렇게요! 자그럼 숫자로 표현해볼까요?

int a;
int b;

a = 3;
b = 5;

if(a<b)
{
Console.WriteLine(a);
}
else
{
Console.WriteLine(b)
}

출력은 항상 5가 나옵니다! 한번씩 해보세요!

자 그러면 이럴때 이렇고 저럴땐 저렇게하고 그럴땐 그럴때는 어떻게 할까요?

if(이럴때)
{
이렇게
} else if(저럴때)
{
저렇게
}
else if(그럴때)
{
그렇게
}

자 그럼 코드로 볼까요?

if(0==a)
{
//0일때
}
else if(1==a)
{
//1일때
}
else
{
//그외 나머지
}

TIP! TIP!

Tip

혼란을 줄이는 코딩기법들

변수 a가 b보다 크다는 두가지로 표현할수 있습니다 b<a,a>b 동일하지만 부등호 방향이 반대여서 혼란스럽기도 합니다.

이럴때 저는 b<a 작은숫자는 왼쪽에 큰숫자는 오른쪽에 넣고 부등호는 <만을 사용합니다. 만약 제 코드에서 >표기가 나오면 이것은 오류!

은근 햇갈릴때가 많으니 알아두시면 유용합니다.


두번째

a==3은 가끔 코드에서 a=3과 같다 라고 착각해서 사용하는 경우가 있습니다 그래서 저는 3 == a 이렇게 사용합니다. 상수를 먼저 쓰는 것이죠

만약 3=a라고 쓰면 컴파일러는  오류를 나타내어 주고 바로 문제를 알수 있게 합니다.

이 팁들을 사용할지 말지는 자유입니다!



+ Recent posts