오늘은 혁매니저님의 나머지(?) 특강
For 문을 배워보는 시간을 가졌습니다.
사실 오늘 전까지는 For문이나, For문 안에 들어가는 조건문을 잘 이해하지 못하고, 한 줄도 혼자 쓰지 못했는데
매니저님의 열혈 설명 덕분에 많이 이해가 되었다!!!! 최고의 매니저님....☆★
수강생이 이렇게 많은데 본인 시간 쪼개서 캠프 시간 이후나 주말에도 나오셔서 챙겨주시고... 참 대단하신 것 같다.
문제 풀이에 앞서 내가 제일 헷갈렸던... For문에 대한 기초적인 정리부터 해보겠다.
처음에 내가 이 문제를 풀어봐라. 라고 했을 때 코드를 한 줄 도 적지 못한 것은
애초에 For문에 대해 이해를 못하고 있기 때문이었다.
>> For 문이 반복문인건 알겠는데, 뒤에 붙은 ( ) 안의 코드들을 이해를 못하겠어!!! 였음
For 문 뒤의 ( 조건문 ) 이해하기
for (int i =0; i<3; i++)
{
Console.Write("*");
}
for ( int i = 0; i < 3; i++)
{
Console.Write ("*");
}
>>>
for 이 조건을 만족할 때 까지 반복
int i = 0; 자료형이 int 인 i 는 0 부터 시작한다
i < 3; i는 3 미만일 때 까지 반복한다
i++ i 의 값은 1씩 증가하며 반복한다
{ Console.Write ("*"); } 반복할 대상! { } 안에 있는 것을 반복해서 실행한다.
그러니까 저 For문은
{ 콘솔창에 * 찍기를 } 반복해라 ( 자료형이 int 인 i 를 0 부터; 3 미만을 넣을 때 까지; i 를 1씩 증가시키며 넣어라)
가 되는 것이다.
///
일단 내가 이해한대로 적어보았는데, 혹시 틀렸다면 .. 누군가 댓글 달아 주겠지 (??)
(1) 직사각형 별 찍기
기본으로 쓰여있는 코드
>>>
using System;
public class Example
{
public static void Main()
{
String[] s;
Console.Clear();
s = Console.ReadLine().Split(' ');
int a = Int32.Parse(s[0]);
int b = Int32.Parse(s[1]);
Console.WriteLine("{0}", a + b);
}
}
문제 풀이 코드
using System;
public class Example
{
public static void Main()
{
String[] s;
Console.Clear();
s = Console.ReadLine().Split(' ');
int a = Int32.Parse(s[0]); //암튼 a 를 정수로 만든다는 뜻 (가로)
int b = Int32.Parse(s[1]); //암튼 b 를 정수로 만든다는 뜻 (세로)
for (int j = 0; j < b; j++) // 세로줄
{
for (int i = 0; i < a; i++) //가로줄
{
Console.Write("*");
}
Console.WriteLine(); //줄바꿈
}
}
}
먼저
가로줄을 만들어준다. 여기서 가로줄에 들어갈 *의 갯수는 a 개 이다.
for (int i = 0; i < a; i++) //가로줄
{
Console.Write("*");
}
i 는 0 ~ a 직전 까지 1씩 증가하며 반복된다
반복 될 때 마다 * 를 하나씩 찍음.
여기서 가로줄에 들어갈 * 의 갯수가 a 개인데 i 에는 a 직전까지 넣어주는 이유
>> i 를 세는건 0부터 세어주기 때문이다.
i 의 값 = i 번째 숫자를 넣어준다 라고 생각할 수 있는데,
여기서 i 는 1번째, 2번째가 아니라 0번째, 1번째, 2번째.... 이렇게 센다.
시작이 0이기 때문에 3개를 넣어주고 싶으면 0 , 1, 2 해서 2를 넣어줘야 하고
따라서 a < 3 이 되는 것이다.
이렇게 가로줄을 만들어 주었다.
그리고 세로줄은 (가로줄)이 세로줄만큼 복사되어야 하는거기 때문에, 세로줄 X (가로줄) 이 된다.
for (int j = 0; j < b; j++) // 세로줄
{
for (int i = 0; i < a; i++) //가로줄
{
Console.Write("*");
}
Console.WriteLine(); //줄바꿈
}
}
그래서 세로줄 갯수인 b 만큼, 가로줄을 곱해야 하기 때문에
세로줄 안에 가로줄 for 문을 넣어주면
세로줄 X (가로줄) 을 만들 수 있다.
그리고 줄 바꿈을 하기 위해 가로줄 하나를 만들 때 마다 Console.WritLine() 을 넣어준다.
그럼 이렇게.
a와 b 값에 따라 원하는 크기의 별로 찍은 직사각형을 만들 수 있다.
뭔가 분명 이해는 했는데, 정리해서 적으려니 알아보기 쉽게 하는게 정말 힘든 것 같다.
그래도 for 문이 돌아가는 형태나, 조건을 지정해주는 것을 꽤 알게 된 것 같아 좋은 시간이었다.
'제출용 > TIL' 카테고리의 다른 글
내일배움캠프 43일차 TIL + 아이템 기본세팅 (1) | 2024.06.17 |
---|---|
내일배움캠프 42일차 TIL + 인터페이스 (0) | 2024.06.14 |
내일배움캠프 40일차 TIL + 낮과 밤 구현 (1) | 2024.06.12 |
내일배움캠프 39일차 TIL + 컴퓨터 UI 사용하기 (1) | 2024.06.11 |
내일배움캠프 38일차 TIL + 거울 포탈 (인 척) (0) | 2024.06.10 |