본문 바로가기

생활코딩/JAVA1

생활코딩) JAVA1 - 14.8. 나의 앱 만들기 - 반복문

https://youtu.be/4-5tmh5Krk8

 

 

프로그램이 점점 좋아지니까 뿌듯하시죠. 그 뿌듯한 그 느낌이 정말 중요합니다. 자 우리 전 시간에는 배열을 도입해서 서로 연관된 데이터를 정리정돈 해봤습니다. 이번 시간에는 어 반복문 이라는 것을 도입해 볼 건데요. 배열과 반복문 은 서로 선행 후행 관계가 아닙니다만 배열 반복문 은 서로 같이 쓸 때 엄청난 시너지 효과를 내기 때문에 같이 살펴보는 것이 좋아서 저는 AccountingArrayApp.java라는 이 파일을 복사 해서 저것을 제 개선을 좀 해보겠습니다 자 카피해서 AccountingArrayLoop, Loop가 이제 반복문 이란 뜻이 거든요. ok 자 그리고 이 파일의 클래스명을 또 바꿔야 겠죠. 됐습니다. 

 

자 지금 우리 동업자가 3명 이기 때문에 여기에 이제 세 줄이 지만 우리 상상력을 발휘해서 엄청나게 큰 기업을 우리가 운영하고 있다고 생각해보세요. 그 동업자가 만 명 정도 된다고 생각해 보세요. 투자자 라고 하죠 그러면 이제 여기 있는 이 코드가 만 줄이 나올 것이고 이 화면에다가 각각의 사람들이 얼마를 가져와야 되는지를 표시하는 저 코드가 한줄이 아니라 1억 줄이다. 그리고 그게 만 명이다 그러면 엄청나게 코드가 많으실 것이고 그 코드에 어떤 문제가 있어서 그래서 수정하려고 하면 우리가 굉장히 힘들어 지게 될 것입니다. 바로 이런 상황에서 우리를 구원해 줄 수 있는 도구가 바로 반복문 입니다. 저기 보시면 요기 있는 이 세 줄은 사실 똑같은 일을 하고 있어요. 다른 점이 있다면 데이터가 다른 것이죠. 그래서 제가 하고 싶은 것은 dividendRates라고 하는 요 배열 값이 몇 개가 있어요. 3개가 있잖아요.

 


그러면 결국에 화면에 표시해야 될 데이터는 3개죠. 즉 3가지 의 작업을 반복문을 통해서 하나의 코드로 표현하는 모습을.. 아 그런데 이렇게 보여드리겠습니다.

 

while이라고 하는 것은 반복문에서 사용되는 키워드인데요, while의 중괄호 안에 있는 코드가 계속해서 반복되게 하는 녀석이에요. 자 그때의 우리가 몇 번 반복해야 되는가 를 지정할 필요가 있는데 현재 우리한테는 반복이 몇 번 필요하냐면 dividendRates의 값의 숫자 즉 세 번 반복되어야 됩니다. 그래서 저는 몇 번 반복 됐는지를

public class AccountingArrayLoopApp {

	public static void main(String[] args) {
		double valueofSupply = Double.parseDouble(args[0]);
		double vatRate = 0.1;
		double expenseRate = 0.3;
		double vat = valueofSupply*vatRate;
		double total = valueofSupply + vat;
		double expense = valueofSupply*expenseRate;
		double income = valueofSupply - expense;
		

		System.out.println("Value of Supply : "+valueofSupply);	
		System.out.println("VAT : "+ vat );
		System.out.println("Total : "+ total );
		System.out.println("Expense : "+ expense );
		System.out.println("Income : "+ income);
		

		double[] dividendRates = new double[3];
		dividendRates[0] = 0.5;
		dividendRates[1] = 0.3;
		dividendRates[2] = 0.2;
		
	
		int i = 0;
		while(i < dividendRates.length) {
			System.out.println("Dividend: "+ income * dividendRates[i]);
			i = i + 1;
		}
	
	}

}

 

int i = 0;
		while(i < dividendRates.length) {
			System.out.println("Dividend: "+ income * dividendRates[i]);
			i = i + 1;
		}


i = 0에서 i 라고 하는 변수에 기록하고요. 반복할 때마다 i 의 값을 1씩 증가 시킬 거예요. 그리고 몇 번 반복한다 구요 3번이요 즉 i 의 값이 dividendRates.length 자 이렇게 하면은 애가 값이 3이 되거든요. 왜요. 이 값이 3개니까 자 3보다 i의 값이 작은 동안에 이 반복문이 실행이 되고 반복문이 실행이 될 때마다 여기 있는 코드로 인해서 아예 값이 1씩 증가하는 코드입니다. 

본격적으로 반복문을 배우지 않았기 때문에 여러분들이 이 코드에 대해서 너무 이해하려고 하지 마시고요. 중요한 것은 반복문의 취지만 이해하시면 되겠습니다. 자 그리고 여기는 코드는 필요없으니까 지워 버렸어요. 자 그리고 여기있는 디바 이던 드 일 이라고 되있는 저거를 dividendRates로 바꾸고 여기를 i로 이렇게 표시를 한 다음에 여기 있는 이 부분을 지워버리고 실행을 시켜 보겠습니다. 실행시키면 보시는 것처럼 에러가 나는 것은 입력 값이 없기 때문이죠. Configuration으로 들어가서 arguments 들어가서 10000 자 이렇게 해서 실행했을 때 이런 결과가 나오는데 제가 착각했네요.

dividendRates는 비율이 고 거기다 이제 뭘 곱해 주면 돼요. income. 자 그리고 다시 한번 실행시켜 봅시다. 자 실행시키면 이전과 똑같은 코드 이지만 이전에는 어땠어요. 여기 있는 이 화면에다가 그 출력하는 코드 가 몇 개 있었어요. 자 요렇게 세 명이면 3개가 있었을 것이고 일억명이면 이렇게 가 있었을 건데 우리가 반복문 으로 처리를 하니까 한 명이건 여러 명이건 딱 한 줄로 표현할 수 있게 된 것입니다. 만약에 버그가 있다면 이 한줄만 수정하면 이렇게 이에 로직이 동시에 수정되는 폭발적인 효과를 얻게 된다는 것이죠.

자 이렇게 해서 이제 반복문 이라는 것을 살펴 보았구요. 앞서 말씀드린 것처럼 반복문은 배열과 단짝이에요. 이걸 통해서 아 그런 불편함이 있을 수 있을 것이고 이런 경우에 배열 반복문 같은걸 나중에 언젠가 공부하면 되겠구나 라고 생각해주시면 되겠습니다. 지금 당장 쓰려고 그러면 잘 안 될 거에요. 왜냐 이걸 자신의 삶에 조립하는 것은 상당히 많은 내공이 필요한 거거든요. 언젠가 될겁니다 아셨죠 여기까지 하겠습니다.

 


------

* 유튜브 강의에서 자막을 추출해 정리했습니다.

-----

 

* 반복문이란 특정 코드를 반복해주는 수단이다.  많은 데이터를 동일한 로직에 태우고 싶을 때 사용하면 편할 것 같다.

반응형