for
반복문
계속 stack이 열여요. 세미콜론으로 하나의 인자를 구분해요.
package array03;
public class ArrayEx02 {
/**
* for문은 조건을 검사한다. 증가는 스택이 끝날 때!!
* 초기값은 최초에만 실행된다.
*/
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}//stack이 끝날 때 증감식
}
}
main method 안에 표현식(exprression)은 함수처럼 생겼지만 호출하지 않아도 실행합니다. 괄호가 끝나면 종료(stack).
package array03;
public class ArrayEx01 {
public static void main(String[] args) {
int num = 1;
for (long i = 2L; i <= 2000000000000000000L; i=i*2) {
System.out.println("2의"+num+"승 : "+i);
num++;
}
//언제까지가 정해져있어요.
while(true) {
}
//무한 반복해요.
}
}
노가다를 통해서 패턴을 찾아서 할 수있어요.
while
무한반복 (그래서 어느 정도 시간을 정해서 사용해야함
이유는 너무 많은 자원을 사용하기 때문에)
빠져나갈 때 쓰는 방법 2가지 있음.
빠져나갈 때는 break; 씁니다.
boolean confirm
DaeMon 프로세스 - 끝이 없이 계속 도는 것
: 서비스 요청에 대해 응답하는 영원한 백그라운드 프로세스. (계속 감시하는 애)
리스너(계속 듣고 있는 애) 그래서 while로 계속 돌아갑니다.
데몬이 리스너한테 notify
package array03;
import java.util.Scanner;
public class Gugudan2 {
//사용자로 부터 입력받은 구구단을 프로그램 완성!!
public static void main(String[] args) {
System.out.println("구구단을 시작합니다.");
boolean confirm = true;
while (confirm) {
System.out.println("숫자를 입력하세요 2~9");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
/*
* for (int n = num; n < 10; n++) { for (int i = 1; i < 10; i++) {
* System.out.println(n + "*" + i + "=" + (n * i)); } System.out.println();
*/
for (int i = 1; i < 10; i++) {
System.out.println(num + "*" + i + "=" + num * i);
}
System.out.println("계속 진행할까요? y or n");
String check = sc.next();
if (check.equals("n")) {
//break;// 가장 가까운 반복문을 빠져나갈 때 사용
confirm = false;
}
}
System.out.println("구구단 프로그램 종료");
}// end of main
}// end of class
boolean confirm
package array03;
public class Coin {
// 남은 동전의 개수를 구하는 프로그램(500, 100, 50, 10)
//2680
public static void main(String[] args) {
int money = 2680;
int count = 0;
int coin[]= {500,100,50,10};
System.out.println("시작 금액: "+money);
for (int i = 0; i < coin.length; i++) {
count = money/coin[i];
money = money%coin[i];
System.out.println(coin[i]+"원 개수 :"+count);
System.out.println("남은 금액 :"+money);
}
}
}
오늘 노가다로 적은 코드들을 refactorying 해봄.
방법은 1. 노가다 코드
2. 반복되는 코드 분석 -> 상수와 변수 구분
3. for문 넣기
'Java' 카테고리의 다른 글
while 예제 - 어떤 거리를 어떤 속도를 가진 자동차가 가는데 걸리는 시간을 구하기 / While example - How much time does it take? (0) | 2020.03.23 |
---|---|
.equals() - String (0) | 2020.03.23 |
메서드 (call by value passing, call by reference passing) (0) | 2020.03.23 |
파일명 바꾸기 // how to rename a file(.java) (0) | 2020.03.20 |
자바 - 식별자, 연산자, 조건문, 함수(method) // Operator, Identifier, if, method (0) | 2020.03.20 |