본문 바로가기
Coding/C#

C# 무작정 따라하기_ while, do while

by 찡콩찡 2022. 12. 27.

https://www.youtube.com/watch?v=xwDI0_TQO5k&list=PLoFFz2j8yxxxH_3ustbHATXtMsHZ-Saei&index=10 


while과 do while 차이점 : 반복 조건을 확인하는 시점
==> do while의 경우 조건을 확인하기 전에 '내용을 먼저 수행'하기 때문에 최초 한번은 무조건 수행 되게 됨
while) 
:조건이 참일 경우 계속 반복 수행
:반복 진행을 하다가 조건이 거짓이 되면 빠져 나옴
:조건 비교를 시작할 때부터 하기 때문에 처음부터 조건이 거짓일 경우 내용을 수행하지 않음

while(조건) 
{
	//반복 시 수행할 내용
}

do while)
:조건이 참일 경우 계속 반복 수행
:반복 진행을 하다가 조건이 거짓이 되면 빠져 나옴
:조건 비교를 마지막에 하기 때문에 처음 한번은 내용을 무조건 수행하게 됨

do {
	//반복 시 수행할 내용
} while(조건);

 

Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Study_while
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnwhileResult_Click(object sender, EventArgs e)
        {
            //로또 1-45 6개 번호
            int[] iArray= new int[6];   
            //배열의 위치를 확인
            int iCount=0;
            //값을 받고 하면에 보여지기
            StringBuilder sb = new StringBuilder();
            Random rd = new Random();

            //iArray가 다 안차면 계속 진행
            while (Array.IndexOf(iArray,0) != -1)
            {
                int iNumber = rd.Next(1,46); //1 <= x < 46

                //중복값이 있으면 안되니까 if문을 사용한다.
                if (Array.IndexOf(iArray, iNumber) == -1)
                {
                    iArray[iCount] = iNumber;

                    sb.Append(string.Format("{0}. ", iNumber));
                    iCount++;   
                }
            }

            //배열 sort
            Array.Sort(iArray);
           
          
            lblwhileResult.Text = sb.ToString();
            lboxwhileResult.Items.Add(sb.ToString());   

        }

        private void btndowhileResult_Click(object sender, EventArgs e)
        {
            Random rd = new Random();

            int iNumber  = int.Parse(tboxNumber.Text);

            //무한루프 도는 것을 막기 위한 코드
            if (iNumber <1 || iNumber > 100)
            {
                MessageBox.Show(" 1-100사이의 숫자를 지정하라! ");
                return;
            }

            int iCheckNumber = 0;
            int iCount = 0;

            do
            {
                iCheckNumber = rd.Next(1,101); // 1 <= x < 101
                iCount++;   

            } while (iNumber != iCheckNumber);

            lbldowhileResult.Text = string.Format("- 뽑은 숫자 {0}을 {1}회만에 찾았습니다." , iNumber, iCount);
        }
    }
}

 

UI

 

 

실행결과