for, while문 같은 문장
do-while
하나를 제외하고 같은 문장
for문
- 반복문
- 특정 코드를 원하는 횟수만큼 실행하는 제어문
- for (초기식; 조건식; 증감식)
{
실행코드;
}
a. 초기식 : 변수 선언 및 초기화(int i; //루프 변수)
b. 조건식 : bool값을 갖는 표현식. 만족하면 실행코드 실행
c. 증감식 : 조건식의 결과를 변화시킬 수 있는 표현식
포문의 루프형태를 인덱스 형태로 접근할때 많이 사용한다. 어떠한
값에대한 메모리방값
using System;
namespace Csharp
{
class Loop
{
public static void Main(string[] args)
{
int
i;
//요구사항] 안녕하세요 x 5번
Console.WriteLine("hi");
Console.WriteLine("hi");
Console.WriteLine("hi");
Console.WriteLine("hi");
Console.WriteLine("hi");
Hi();
Hi();
Hi();
Hi();
Hi();
/*--------------------------------------------------------
순차적으로 라인 단위로 읽는다.
for문을 만나 i를 초기화 i가 5크거나 같을때까지 i를 +시킨다.
1) i=1 2) i<=5; 3) i++ 4)
Console 5) } 6) i++
이러한형태로 계속 돌다가 조건문에 조건에 맞지 않을때
false가 나온다.
초기값 i = 1 은 초기에 값만 셋팅해
준다.
--------------------------------------------------------*/
for(i=1;
i<=5; i++)//가로때문에 i++ 문장 종결자를 안붙였다.
{
Hi();
}
}
public static void Hi()
{
Console.Write("★");
}
}
}
using System;
namespace Csharp
{
class Ace
{
public static void Main(string[] args)
{
//M1();//1~10
출력
//M2();
//M3();//1~10사이 짝수 출력
//M4();//10바퀴를 5바퀴로 압축
//M5();//10의 역순
//M6();//1부터 10까지의 합
//M7();
//M8();
//M9();
//M10();
//M11();
//M13();
M14();
}
public static void M1()
{
for(int i=1; i<=10; i++)
{
Console.WriteLine(i);
}
}
{
for(int i=1; i<=10; i++)
{
Console.WriteLine();
}
}
public static void M3()
{
//1~10사이의 짝수 출력
for(int i=1; i<=10; i++)
{
if(i
% 2 == 0)
{
Console.WriteLine(i);
}
}
}
{
//1~10사이의 짝수 출력
// or
i=2; i++는 마음대로 변경가능 어떤문장도 가능 Console.WriteLine() <이렇사용해도 무방하다.>
i=i+2
//10바퀴 도는것을 5바퀴로 돌아 프로그램 효율이
더좋아진다. 가벼워진다.
for(int i=2; i<=10; i+=2)
{
Console.WriteLine(i);
}
}
public static void M5()
{
//10 의 역순
for(int i=10; i>=1; i-=2)
{
Console.WriteLine(i);
}
for(int i=1; i<=10; i++)
{
Console.WriteLine(11-i);//루프는 건들수 없지만 2차 가공
}
}
{
//반복문을 이용한 수치누적
//1~10까지의 합?
//1 + 2+
3+ 4+ 5+ ....+9 +10
//1 + 2
//3 + 3
// 6 +4
//누적변수
int
sum = 0;
for(int i=1; i<=10; i++)
{
sum = sum + i;//**
Console.WriteLine(sum);
}
}
{
int
sum = 0;
for(int i=1; i<10; i+=2)
{
//홀수의 합
}
for(int i=3; i<30; i+=3)
{
Console.WriteLine(sum);
}
}
public static void M8()
{
int
i;
for
(i=0; i<=9; i++)
{
Console.WriteLine(i);
}
Console.WriteLine("출력문 : {0}", i); //for문은 지역변수이기 때문에 벗어나서 출력하는 것은 불가능 하다.
//지역변수는 : 선언이 포함된 {} 안에서만 사용
//
=> 메서드안에서 선언된
//
=> 제어문안에서 선언된
//
=> 지역변수는 동일한 이름으로 2개이상 존재 할수 없다.
}
{
for(;;)
{
Console.WriteLine("무한");//포문 무한루프
}
}
{
for(int i=0, j=1; i<10 && j < 10; j+=2,
i++)
{
Console.WriteLine("i:{0} j:{1}", i,j);
}
}
{
//분기문 : break, continue
for(int i=1; i<11; i++)
{
if
( i==5)
{
//break;//제어가 오면 자신이 속한 제어문 탈출
//if문은 자신이 속한 제어문이라고 생각 하지 않고
for 문이라고 인식한다.
//제어가 오면 자신이 속한 제어문의 시작 점프 for문으로
점프한다.
continue;
}
Console.WriteLine(i);
}
}
{
int
num = 0;
Console.Write("오늘 상담할 학생수 : ");
num = int.Parse(Console.ReadLine());
//20명상담
for(int i=1; i<=20; i++)
{
if(i
== num + 1)
{
break;
}
Console.WriteLine("{0}번 학생 상담중", i);
}
}
{
for(int i=1; i<=20; i++)
{
//if(i
== 5 || i==12 || i==15)// i가 5일때 위로 포문으로 올라간다. 스킵 개념 skip
if(i
> 5 && i < 10)
{
continue;
}
Console.WriteLine("{0}번 학생 상담중", i);
}
}
{
//구구단
//반복문은 패턴을 찾아야 한다.
Console.WriteLine("===========");
Console.WriteLine(" 5단 ");
Console.WriteLine("===========");
for(int j=5, i=1; i<=10; i++)
{
Console.WriteLine("{0} * {1, 2} = {2, 2}", j,i, j*i);
}
}
}
}
**문법적으로 다중 for문의 제한은 없다. 보통 2중에서 3중으로
사용하진 않는다.
안쪽 포문은 소회전 바깥쪽 포문은 큰회전
using System;
namespace Csharp
{
class Ace
{
public static void Main(string[] args)
{
//M1();
//M2();
//M3();
M4();
}
public static void M1()
{
for
(int i=0; i<10; i++)
{
for
(int j=0; j<10; j++)
{
//2중 포문 or 중첩된 포문
Console.WriteLine("Hello");
}
Console.WriteLine("Hi");
}
}
{
for
(int i=0; i<10; i++)
{
for
(int j=0; j<10; j++)
{
for(int k=0; k<10; k++)
{
//3중 포문 or 중첩된 포문 x 로 표현됨
10*10*10
Console.WriteLine("Hello");
}
}
Console.WriteLine("Hi");
}
}
public static void M3()
{
for
(int i=0; i<10; i++)
{
for
(int j=0; j<10; j++)
{
//2중 포문 or 중첩된 포문
Console.WriteLine("i : {0} j : {1}", i, j);
}
}
}
{
for
(int i=0; i<10; i++)
{
for
(int j=10; j>0; j--)
{
if
(i == 5)
{
break;//j for문만 탈출한다.
}
//2중 포문 or 중첩된 포문
Console.WriteLine("i : {0} j : {1}", i, j);
}
}
}
}
}
while문
- while(조건식)
{
조건문
}
using System;
namespace Csharp
{
class Ace
{
public static void Main(string[] args)
{
While();
}
public static void While()
{
int
i = 1;
while(i
< 10)
{
Console.WriteLine(i);
i++;
}
}
}
}
do while문
- do
{
실행코드;
}while(조건식);
특징 : 조건은 나중에 검사한다. 만족하면 반복실행 만족할때까지 반복실행 = 선실행 후조건
using System;
namespace Csharp
{
class Ace
{
public static void Main(string[] args)
{
int
n = 0;
do
{
Console.WriteLine(n);
n++;
} while
(n <= 10);
}
}
}
난수발생기
using System;
namespace Csharp
{
class Ace
{
public static void Main(string[] args)
{
//난수 발생기
// - 임의의 숫자를 발생시키는 발생기
Random rnd = new Random();
for
(int i=0; i<=6; i++)
{
//int
num = rnd.Next();//0~21억
//int
num = rnd.Next(10);
//int
num = rnd.Next(10, 20);
int
num = rnd.Next(1, 46);
Console.WriteLine(num);
}
}
}
}