C# 예제
과목 3개 국어, 영어, 수학 입력받아 평균 점수 구하기.
- 평균점수에 따라 등급 출력.
- 90점 이상 A, 80점 이상 B, 70점 이상 C, 60점 이상 D, 나머지는 F
*입력받는 변수, 저장하는 변수 모두 실수형으로 선언해 나눗셈을 진행하면 소수점까지 출력이 가능하다.
double Kor;
double Eng;
double Mth;
char grade;
Console.Write("국어 점수를 입력해주세요: ");
Kor = double.Parse(Console.ReadLine());
Console.Write("영어 점수를 입력해주세요: ");
Eng = double.Parse(Console.ReadLine());
Console.Write("수학 점수를 입력해주세요: ");
Mth = double.Parse(Console.ReadLine());
double avg;
avg = (sub1 + sub2 + sub3) / 3;
if (avg >= 90)
{
grade = 'A';
}
else if (avg >= 80)
{
grade = 'B';
}
else if (avg >= 70)
{
grade = 'C';
}
else if (avg >= 60)
{
grade = 'D';
}
else
{
grade = 'F';
}
Console.WriteLine("당신의 평균 점수는 {0}점이며 등급은 {1}입니다.", avg, grade);
switch
- 조건 값이 여러 값들을 가질 경우 각 case별 다른 문장들을 실행할 때 사용한다.
- 각 case문 내에서 break문을 만나면 해당 case 블럭의 문들을 실행하고 switch를 빠져나온다. (필수)
- 완벽히 if문을 대신할 순 없지만 가독성이 좋다. (enum 열거형과 switch를 보통 같이 쓴다 -> 가독성을 높이기 위해)
- switch 내의 switch로 중첩 가능 -> 가독성이 구려진다.
switch문 형식)
switch (값)
{
case (상수): //if 값이 상수라면 break;까지 실행, 변수가 아니어야함, 'a'와 같은 문자도 가능
내용 실행
break;
case (다른 상수): //else if와 동일
내용 실행
break;
default: //else와 동일
break;
}
Swith문 이용 예시
Console.WriteLine("어디로 이동할지 선택하세요");
Console.WriteLine("1. 로비 2. 상점 3. 전쟁터 4. 투기장");
int locationInput = int.Parse(Console.ReadLine());
switch (locationInput)
{
case 1:
Console.WriteLine("로비로 이동합니다.");
break;
case 2:
Console.WriteLine("상점으로 이동합니다.");
break;
case 3:
Console.WriteLine("전쟁터로 이동합니다.");
break;
case 4:
Console.WriteLine("투기장으로 이동합니다.");
break;
}
난수란? (Random)
- 특정한 순서나 규칙을 가지지 않은 무작위의 숫자
- 임의의 숫자나 확률이 필요한 알고리즘이나 코드에 사용
- 연산자 new와 생성자를 이용해서 Random 타입의 객체를 생성한다.
* Next(): 0보다 크거나 같고 System.Int32.MaxValue 보다 작은 부호있는 32비트 정수
난수 예제 코드
Random random = new Random();
int randNum = random.Next();
Console.WriteLine(randNum);
int randNum1 = random.Next(10); //0~9
Console.WriteLine(randNum1);
int randNum2 = random.Next(1, 10); //1~9
Console.WriteLine(randNum2);
int randNum3 = random.Next(10) + 1;
Console.WriteLine(randNum3);
위의 코드를 실행해보면
random.Next()의 결과로 12094832 식의 꽤 크기가 큰 난수를 볼 수 있다.
한자리 수의 숫자로 받기를 원한다면, Next()안에 숫자를 넣어주면 0부터 그 숫자 미만까지의 범위로 수가 나온다.
시작 범위도 지정하고 싶다면 Next(시작, 끝) 해주면 시작이상 ~ 끝 미만의 숫자가 나온다.
randNum3 식을 보면 0~9사이의 난수에 1을 더해 결국 1에서 10까지 숫자중에 난수가 나온다.
반복문
- 반복적으로 수행하기 위해 사용.
- while문 / for문
- 종료 조건이 없다면 (true)라면 기본적으로 무한 루프이다.
- 무한 루프인 상태를 놔두면 시스템이 다운될 수 있기 때문에, 반드시 종료 조건이 있어야 한다.
while문 형식)
while (true) //->종료 조건을 넣어야됨, 여기가 true라면 무한루프
{ //위 조건을 만족하면 이 부분 실행
Console.WriteLine("무한루프");
}
예제
int num = 0;
while (num < 10) //num이 10보다 작으면 실행, 10보다 같거나 커지면 종료
{
num++;
Console.WriteLine("num은 {0}", num);
} //1. num이 1씩 증가, 2. while의 num<10이 false가 되는 순간 while문 종료
while (true)
{
num++;
Console.WriteLine(num);
//종료 조건이 길 경우 따로 아래에 쓰는게 가독성이 좋다
if (num > 10)
{
break;
}
}
5000까지 합과 더하는 수 출력하기.
int sum = 0;
int num = 0;
while (true)
{
sum += num;
if (sum > 5000) //종료조건
{
break; //가장 가까이 break를 감싸고 있는 반복문 한 개를 빠져나온다.
}
num++;
}
Console.WriteLine("sum: {0}", sum);
Console.WriteLine("num: {0}", num);
입력한 수 만큼 특정 문장 반복 출력하기
int input;
Console.Write("숫자를 입력하세요: ");
input = int.Parse(Console.ReadLine());
while (true)
{
Console.WriteLine("냠냠");
input--;
if (input <= 0)
{
break;
}
}
입력을 계속 받아 0을 입력 받을 때 까지 누적하여 합 계산하기
int sum = 0;
int num;
Console.WriteLine("더할 숫자를 입력하세요 (0입력시 종료): ");
while (true)
{
num = int.Parse(Console.ReadLine());
sum += num;
if (num == 0)
{
break;
}
}
Console.WriteLine("입력하신 숫자들의 합은 {0}", sum);
'공부 > C#' 카테고리의 다른 글
[C#] for문과 break, continue의 사용, 열거형 상수 enum과 예제 (0) | 2023.03.16 |
---|---|
[C#] 콘솔창 글씨/배경 색 바꾸기, 실제 색상표, 출력 글자 수 빈칸으로 맞추기와 이것들을 활용한 콘솔 게임 예제 (0) | 2023.03.16 |
[C#] C# 프로그래밍에서의 연산자 우선순위 (0) | 2023.03.14 |
[C#] 연산자의 종류(증감, 관계, 논리, 비트)와 if, else if, else절 (1) | 2023.03.14 |
[C#] 변수와 오류, 형식, 메모리 패딩, 입력, 포맷 등 기본 개념에 대하여 (2) | 2023.03.13 |