일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- jquery
- mybatis
- jar
- jdbc
- 환경설정
- extends
- 자바
- 형변환
- 참조타입
- 자료구조
- Selector
- 개선
- JCF
- SQL
- for문
- scope
- interface
- jsp
- 알고리즘
- regex
- 정규화표현식
- 자바스크립트
- DB
- String
- controller
- html
- iBATIS
- java
- JavaScript
- Set
- Today
- Total
프로그래밍공부노트
Day 7 - JAVA(if-else, while, do-while, break, continue) 본문
21 - 2. 기본타입의 초기화 값 vs 참조타입의 초기화 값
1) 기본타입은 각 타입의 default값을 입력한다.
-> local variable이 아니라 instatance variable로 생성되는 member field의 경우
member field는 class가 instance가 되었을 때 사용가능한 변수 => instance variable (new)
2) 참조타입은 reference를 가지고 있음 객체명
-> 기본타입은 각 타입의 default값을 가지고 있지만 참조타입은 기능과 정의가 다 다르기 때문에 동일한 특정한
주소를 가질 수 없다
-> 선언한 참조타입은 heap에 객체가 없다 표기(heap에 주소를 연결하지 못했다)
21 - 3. 메소드의 호출
1) 객체를 생성하는 호출
ex) A a = new A();
a.make()
2) static 호출
ex) A.make();
**메소드를 호출했다면 반드시 반환타입을 확인하세요.
21 - 4. 객체의 생성
1) 기본타입이 아닌 것은 모두 다 객체
2) heap 영역
3) reference hashcode가 new를 통해 인스턴스화할 때 부여됨
4) invocation reflection
21 - 5. 증감 연산자(++,--)
1) ++a, --a : 선증가(감소) 후 처리
2) a++, a-- : 선처리 후 증가(감소)
특징 : 1씩 증가
a = a + 1;
a += 1; / a = +1 a + 1 = a
a++; ++a;
public static void main(String[] args) {
int a = 1;
// a = a + 1;
// a += 1; // ++a;
System.out.println(a++); // 1 -> 1출력 -> 2
System.out.println(a++); // 2 -> 2출력 -> 3
System.out.println(++a); // 3 -> 4로 증가 -> 4출력 -> 4
System.out.println(a--); // 4 -> 4출력 -> 3
System.out.println(--a); // 3 -> 2감소 -> 2출력 -> 2
System.out.println(a--); // 2 -> 2출력 -> 1
System.out.println(a); // 1
}
}
21 - 6. iteration 반복문
1) for문 : 초기값 조건 증감이 있는 선택 반복문
ex) 1층을 만드는 설계도가 있는데 4층을 만들고 싶다.
(시작 조건 종료 조건 증감이 있는 경우 for문 사용)
- 1부터 10까지의 합을 구해보자!
for | ( | 선언; | 조건; | 증감 | ) | {} |
누적값과 마지막값을 모두 출력하겠다
int sum = 0; // 연산에서 사용하기 위해서 초기화 필요하다
int i = 0;
for (; i < 10; i++) {
// System.out.println((i+1)*2);
sum = sum +(i+1);
System.out.println("누적진행 값:" + sum);
}
System.out.println(i +"번째최종누적 값 :" + sum);
디버깅표
i | i < 10 | sum | 출력 | i++ |
0 | T | 0 + 1 = 1 | 1 | 0 |
1 | T | 1 + (1+1) = 3 | 3 | 1 |
2 | T | 3 + (2 + 1) = 6 | 6 | 2 |
3 | T | 6 + (3 + 1) = 10 | 10 | 3 |
4 | T | 10 + (4 + 1) = 15 | 15 | 4 |
5 | T | 15 + (5 + 1) = 21 | 21 | 5 |
6 | T | 21 + (6 + 1) = 28 | 28 | 6 |
7 | T | 28 + (7 + 1) = 36 | 36 | 7 |
8 | T | 36 + (8 + 1) = 45 | 45 | 8 |
9 | T | 45 + (9 + 1) = 55 | 55 | 9 |
10 | F |
누적진행 값:1
누적진행 값:3
누적진행 값:6
누적진행 값:10
누적진행 값:15
누적진행 값:21
누적진행 값:28
누적진행 값:36
누적진행 값:45
누적진행 값:55
10번째최종누적 값 :55
- 피보나치수열
package com.min.edu.iterator;
import java.util.Scanner;
public class Fibonachi_Logic {
/**
* 피보나치 수열 만들기
* 초기값으로 주어진 두개의 수를 합한 값을 다시 이전의 마지막 수와 더하여 진행되는 수열
* @param args
*/
public static void main(String[] args) {
System.out.println("피보나치 수열의 갯수를 적어주세요");
Scanner scan = new Scanner(System.in);
int inNum = scan.nextInt();
int num1 = 1;
int num2 = 2;
System.out.printf("%d \t %d \t", num1, num2);
for (int i = 0; i < inNum-3; i++) {
int num3 = num1 + num2;
System.out.printf("%d \t",num3);
num1 = num2;
num2 = num3;
}
}
}
디버깅표
num1 | num2 | i | i<6-3 | num3 | i++ |
1 | 2 | 0 | 0 < 3 T | 3 | |
2 | 3 | 0 | |||
1 | 1 < 3 T | 5 | |||
3 | 5 | 1 | |||
2 | 2 < 3 T | 8 | |||
5 | 8 | 2 | |||
3 | 3 < 3 F |
2) while문 : 무한 반복문
ex) 게임을 진행한 후 다시 할거냐?
import java.util.Scanner;
public class Game369_Process {
//TODO 03.게임의 진행을 처리해주는 메소드
public void gameProcess() {
String ch;
// int ch;
do {
gamePlay();
Scanner scan = new Scanner(System.in);
System.out.println("게임을 한번더 하시겠습니까? Y/N");
ch = scan.nextLine();
// ch = scan.nextInt();
} while(ch == "Y");
}
}
break / continue
public class Statement_if_while_break_continue {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
System.out.println(i+);
if(i==50) {
break;
}
}
0부터 1씩 증가하면서 i를 출력하다가 i가 50이 되면 for문을 빠져나온다
public class Statement_if_while_break_continue {
public static void main(String[] args) {
int i = 0;
for (; i < 10; i++) {
if(i > 5) {
System.out.println("안해");
continue;
}
System.out.println(i);
}
System.out.println("마지막번호 : " + i);
i가 0부터 1씩증가하면서 i를 출력하다가 i가 5보다 커지면 "안해"를 출력한다. int i를 for문 밖에서 선언하여 설정하여 중간에 "안해"가 출력되다가 마지막 번호 10번 출력이 가능하다.
21) JAVA Statement
증감연산자 | for문 | while문 | break / contiune |
++,-- 변수의 값을 1씩 증가 변수의 값을 1씩 감소 a = a+1 a = a-1 int a = 100 1) 선처리 후증가(a++) : 100 2) 선처리 후감소(a--) : 100 3) 선증가 후처리(++a) : 101 4) 선감소 후처리(--a) : 99 |
초기값, 조건, 증감이 있는 선택 반복문 for(int i = 0; i < 5; i++){ 연산 } 순서 : 값입력 -> 판단 -> 연산 -> 증감 -> 판단 -> 연산 -> 증감.....판단(false) -> 종료 |
조건이 있는 무한 반복문 1) 조건을 판단 후 실행 while(조건){ } 2) 실행 후 판단 do{ }while(조건); |
반복문의 제어를 위해서 사용함 break문은 반복문의 종료 반복문을 나옴 continue문은 반복문에서 continue를 실행했을 경우 아래의 연산을 동작하지 않고 처음으로 복귀함 |
21) 3 6 9 게임 로직
1) 1부터 숫자가 1씩 증가하고 종료는 20까지
2) 숫자중에서 3을 포함하고 있으면 숫자가 아닌 짝 이라고 출력
public class CheckNum {
// 0이 아니면서 3의 배수인지 체크하는 메소드
public boolean checkTest(int num) {
boolean isc = false;
int temp = num%10;
if(temp != 0 & temp%3 == 0) {
isc = true;
} else {
}
return isc;
}
}
//3 6 9 게임 숫자 출력하는 메소드
public void playGame() {
for (int i = 0; i < 20; i++) {
int num = i + 1;
if(checkTest(num)) {
System.out.println("짝");
} else {
System.out.println(num);
}
}
}
public class Game_Main {
public static void main(String[] args) {
CheckNum cn = new CheckNum();
cn.playGame();
}
}
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20 출력됨
'JAVA' 카테고리의 다른 글
Day 9 - JAVA(if문, for문, 3항연산자,진약수 구하기,API문서,JAR) (0) | 2021.02.22 |
---|---|
Day 8 - JAVA실습(for문, 삼각형) (0) | 2021.02.20 |
Day 6 - JAVA(Argumnets, Paratmeter, 기본타입, 참조타입) (0) | 2021.02.17 |
Day 5 - JAVA(method, static, return) (1) | 2021.02.16 |
Day 4 -JAVA(type) (0) | 2021.02.15 |