using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace project_1126
{
internal class Program
{
static void Main(string[] args)
{
//---------------------------------------------- 과제1
Console.WriteLine("몇회 반복하시겠습니까?");
int count = int.Parse(Console.ReadLine());
for (int i = 1; i <= count; i++)
{
Console.WriteLine($"{i}회 반복 중입니다.");
}
//----------------------------------------------과제2
Console.WriteLine("두 수 사이의 합을 구합니다. 시작할 작은 수를 입력해주세요");
int firNum = int.Parse(Console.ReadLine());
Console.WriteLine("끝 수를 입력해주세요");
int twoNum = int.Parse(Console.ReadLine());
int sum = 0; // 반복 결과 값을 저장할 변수
// 두 수를 입력받는다
// 첫번째 수가 두번째 수가 작은 동안 첫번째 수+1을 반복한다.
// 반복 결과 값들을 임의의 변수에 저장한다.
// 만약 첫번째 수가 두번째 수보다 커졌다면 반복을 끝낸다.
// 첫번째 수, 두번째 수, 반복 결과 값들을 합한 값을 출력 한다.
// i에 firnum을 할당한 뒤, i가 twonum과 같거나 보다 작을때까지 i에 1씩 더한다.
for (int i = firNum; i <= twoNum; i++)
{
//0이었던 sum에 firNum을 더한다. sum = sum+i 이것을 반복한다.
sum += i;
}
Console.WriteLine(sum); // 얜 반복문 밖에 있어야 하는데, 안 그러면 반복하는 동안 값들이 계속 출력된다.
//---------------------------------------------- 과제3 구구단 기능 제작
// 1~9까지의 정수를 입력하라고 뜬다.
// 만약 1~9까지의 정수가 아니라면 => 제대로된 입력을 하라고 무한 반복하는 예외처리
// 1~9까지의 정수라면 => 구구단이 나온다.
// "구구단 (n)단" 라인이 출력된다.
// 만약 입력 받은 값이 3이라면 , 구구단 표의 규칙은 3 x 1 = 3 ... 3 x 2 = 6
// 첫번째 값에는 '입력받은 정수' 두번째 값에는 '반복 값' 세번째 값에는 '나머지가 없는 정수'
//선언과 동시에 초기화▼
int num = 0;
int result = 0;
bool isint = false;
bool isBig = num > 10;
Console.WriteLine("1~9까지의 정수를 입력하세요.");
isint = int.TryParse(Console.ReadLine(), out num); // 만약 입력받은 값이 정수라면 true, 아니라면 false
if (isint == true && isBig==false) // 만약 isint가 true라면
{
if (num < 10) // num이 10보다 작다.
{
Console.WriteLine($"{num}단 ");
for (int i = 1; i < 10; i++) // 9단이 될때까지 반복함.
for (int j = num; num % j == 0; j++) // 입력받은 정수 값에 나머지가 없는 정수를 계속 더함
{
result += j;
Console.WriteLine($"{num} x {i} = {result}");
}
}
}
}
}
}
- 구구단을 하다가 예외 처리가 너무 끔찍해서 시간 안에 다 하질 못했다.
- else if를 하면 될것같은데 답을 입력하면 로직이 끝난다던지, 아예 반복 로직까지 못들어가는 문제가 있었다.
+ 11.26 9시 49분에 수정
internal class Program
{
static void Main(string[] args)
{
{
//선언과 동시에 초기화▼
int num = 0;
int result = 0;
bool isint = false;
while (true)
{
Console.WriteLine("1~9까지의 정수를 입력하세요.");
isint = int.TryParse(Console.ReadLine(), out num); // 만약 입력받은 값이 정수라면 true, 아니라면 false
if (isint == true) // 만약 isint가 true라면
{
if (num < 10 && num > 1) // num이 10보다 작고,1보다 클 때
{
Console.WriteLine($"{num}단 ");
for (int i = 1; i < 10; i++) // 9단이 될때까지 반복함.
for (int j = num; num % j == 0; j++) // 입력받은 정수 값에 나머지가 없는 정수를 계속 더함
{
result += j;
Console.WriteLine($"{num} x {i} = {result}");
break;
}
}
else
{
Console.WriteLine("올바른 값을 입력해주세요.");
}
}
else if (isint==false)
{
Console.WriteLine("정수값이 아닙니다. 정수값을 입력해주세요");
}
}
}
}
}
}
아예 while 안에 넣어서 영원히 반복되도록 했다. 이제 구구단을 영원히 출력한다...
'C# > TIL' 카테고리의 다른 글
24.11.27 별찍기 (0) | 2024.11.27 |
---|---|
2024.11.25 심화 과제 실수의 부정확함 / DividedByZero 조사 (0) | 2024.11.25 |
2024.11.25 비주얼 스튜디오 코드 : 단축키, 형변환, 변수와 상수, 자료형 종류, 그리고 과제 (0) | 2024.11.25 |