아래 확인버젼을 돌리시면 프로그램 돌아가는 내부 과정을 볼 수 있습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Report01_Array_lotto2
{
class Program
{
static void Main(string[] args)
{
Random r = new Random(); //난수발생기 선언
int sum; // 합계
int[] ar = new int[6]; // 로또 번호를 저장한 6개의 배열 생성
bool arrays = false; //do ~ while 판별을 위한 bool 초기값 false 로 셋팅
while (true)
{
do
{
arrays = true; // true 로 셋팅 true 가 계속 유지되면 do - while문 종료 즉 중복값이 없다는 뜻
sum = 0; // 합계 0 으로 셋팅
// 로또 뽑기 메소드(배열 입력)
sum = ArrayIn(r, sum, ar);
// 중복 검사 메소드
arrays = OverlapCheck(ar, arrays);
if (arrays == false)
Console.WriteLine("펄스값 - Do while 다시 시작 ");
if (arrays == true)
Console.WriteLine("트루값 - Do while 끝");
if (sum / 6 < 20 || sum / 6 > 25) // 로또 번호의 합의 평균은 20 ~ 25 사이 값이어야 하기때문에 if의 조건문 사용
{
arrays = false;
Console.WriteLine("평균값이 아니다!! Do while 다시 시작 ");
Console.WriteLine("{0}의값은 평균값이 아니다!! Do while 다시 시작 ", sum / 6);
}
} while (arrays == false);
Print_lotto(sum, ar);// 출력메소드
Console.Write("--------------------------------\n");
Console.Write("중단하려면 y를 입력하세요 : ");
string yn = Console.ReadLine();
if (yn.Equals("y")) // y 일경우 프로그램 종료
break;
}
}
private static int ArrayIn(Random r, int sum, int[] ar)
{
for (int i = 0; i < 6; i++)
{
ar[i] = r.Next(1, 50); // 1 ~ 49 사이의 난수
sum = ar[i] + sum; // 로또 번호의 합
}
return sum;
}
private static bool OverlapCheck(int[] ar, bool arrays)
{
for (int i = 0; i < 5; i++)
{
for (int j = i + 1; j < 6; j++)
{
if (ar[i] == ar[j]) // 배열에 저장된 로또 번호를 비교
{
arrays = false;
Console.WriteLine("배열비교{0},{1} 의 값 {2}, {3}, 같은 값이네! 딱걸렸슴!", i, j, ar[i], ar[j]);
}
else
{
Console.WriteLine("배열비교{0},{1} 의 값 {2}, {3}, 틀린값! 빙고!", i, j, ar[i], ar[j]);
}
}
}
return arrays;
}
private static void Print_lotto(int sum, int[] ar) // 로또번호 출력
{
for (int j = 0; j < 6; j++)
{
Console.WriteLine("로또번호 [{0}] 번째 값은 = {1}", j, ar[j]);
}
Console.WriteLine("평균은 {0}", sum / 6);
}
}
}
'프로그램 > C# - Study' 카테고리의 다른 글
객체지향은? (0) | 2010.09.13 |
---|---|
6D - 배열 , 다차원 배열, Langth(), Sort(), Reverse(), IndexOf() 기능 (0) | 2010.09.13 |
Report01 - 로또생성기 (0) | 2010.09.10 |
5D - 배열 (0) | 2010.09.10 |
5D - 메소드, 오버로딩 (0) | 2010.09.10 |