티스토리 뷰
1교시
어제 마지막 실습에 대한 풀이 중
지역변수랑 전역변수에 대해, 그리고 '초기화'에 대한 이해가 부족한 것 같음
정수형인지 실수형인지 애매하다 싶으면 무조건 큰 걸로 하는 것
double이나 long...
예전에는 메모리 관리가 민감했으나 요즘은 용량이 늘어나서 그다지 중요한 부분은 아니라고 생각
public class IfSwitch { //if, if~else, if~else if public void ex3( char code, int ea ) { int price; //String name1 = "냉장고"; //이렇게 하라는 건가? //String name = ""; //상품명 넣을 건데 일단 초기화 //int amt = 0; //sum으로 묶은 것을 선생님은 amt로 묶으셨음 //double vat = 0; //부가세(amt*0.1) //double tot = 0; //총 금액(amt + vat) if ( code == 'A') { price = 1000; System.out.println("상품 코드: " +code); System.out.println("상품명: 냉장고"); System.out.println("단가: " +price); System.out.println("수량: " +ea); System.out.println("금액: " +ea*price); int sum = ea * price; System.out.println("부가세: " +(int)(sum*0.1)); int sum2 = (int)(sum*0.1); System.out.println("총액: " +(sum+sum2)); } else if ( code == 'B') { price = 2000; System.out.println("상품 코드: " +code); System.out.println("상품명: 세탁기"); System.out.println("단가: " +price); System.out.println("수량: " +ea); System.out.println("금액: " +ea*price); int sum = ea * price; System.out.println("부가세: " +(int)(sum*0.1)); int sum2 = (int)(sum*0.1); System.out.println("총액: " +(sum+sum2)); } else if ( code == 'C') { price = 3000; System.out.println("상품 코드: " +code); System.out.println("상품명: 컴퓨터"); System.out.println("단가: " +price); System.out.println("수량: " +ea); System.out.println("금액: " +ea*price); int sum = ea * price; System.out.println("부가세: " +(int)(sum*0.1)); int sum2 = (int)(sum*0.1); System.out.println("총액: " +(sum+sum2)); }else if ( code == 'B') { price = 4000; System.out.println("상품 코드: " +code); System.out.println("상품명: 자동차"); System.out.println("단가: " +price); System.out.println("수량: " +ea); System.out.println("금액: " +ea*price); int sum = ea * price; System.out.println("부가세: " +(int)(sum*0.1)); int sum2 = (int)(sum*0.1); System.out.println("총액: " +(sum+sum2)); } } //switch public void ex4( char code, int ea ) { int price; int sum = 0; int sum2 = 0; switch ( code ) { case 'A' : price = 1000; System.out.println("상품 코드: " +code); System.out.println("상품명: 냉장고"); System.out.println("단가: " +price); System.out.println("수량: " +ea); System.out.println("금액: " +ea*price); sum = ea * price; System.out.println("부가세: " +(int)(sum*0.1)); sum2 = (int)(sum*0.1); System.out.println("총액: " +(sum+sum2)); break; case 'B' : price = 2000; System.out.println("상품 코드: " +code); System.out.println("상품명: 세탁기"); System.out.println("단가: " +price); System.out.println("수량: " +ea); System.out.println("금액: " +ea*price); sum = ea * price; System.out.println("부가세: " +(int)(sum*0.1)); sum2 = (int)(sum*0.1); System.out.println("총액: " +(sum+sum2)); break; case 'C' : price = 3000; System.out.println("상품 코드: " +code); System.out.println("상품명: 컴퓨터"); System.out.println("단가: " +price); System.out.println("수량: " +ea); System.out.println("금액: " +ea*price); sum = ea * price; System.out.println("부가세: " +(int)(sum*0.1)); sum2 = (int)(sum*0.1); System.out.println("총액: " +(sum+sum2)); break; case 'D' : price = 4000; System.out.println("상품 코드: " +code); System.out.println("상품명: 자동차"); System.out.println("단가: " +price); System.out.println("수량: " +ea); System.out.println("금액: " +ea*price); sum = ea * price; System.out.println("부가세: " +(int)(sum*0.1)); sum2 = (int)(sum*0.1); System.out.println("총액: " +(sum+sum2)); break; } } public static void main(String[] args) throws IOException { IfSwitch play = new IfSwitch(); // 제일 먼저 클래스를 객체화 시켜야하는 것입니당. // 맨 왼쪽에 클래스 명이 가장 먼저 나와야 한다 그리고 객체형(변수..) 만들고 // new 연산자를 사용하여생성자 선언 //play.ex1(); //play.ex2(); play.ex3('A', 10); //if System.out.println("----------비교 구분선----------"); play.ex4('C', 10); //switch } }
*번외*
prn 메소드를 만들어서 출력을 좀 더 쉽고 추후 수정 또한 편이하게 해보자
public void prn( char code, String name, int dan, int ea, int amt, double vat, double tot) { //이 자리에 프린트할 모든 것들을 불러온다 //if나 switch문에서 메소드를 또 불러오면? 하나만 수정하면 되니까 간편하잖아 System.out.println("----------------------------"); System.out.println("상품 코드: "+code); System.out.println("상품명: "+name); System.out.println("단가: " +dan); System.out.println("수량: " +ea); System.out.println("금액: " +amt); System.out.println("부가세: "+vat); System.out.println("총액: " +tot); // 호출 방법: this.prn( code, name, dan, ea, amt, vat, tot ); // 이렇게 써넣으면 알아서 prn 메소드를 호출하는 것이다 // 여기서 [this]는 자기 자신을 의미하는 의미 // 고수들은 this.을 꼭 쓴다 ㅋㅋㅋㅋ 고수 티를 내고 싶다면 추천 }
※코드는 위의 prn 메소드에 맞춰서 if문/switch문 다 수정해야 하는 것
2교시
일주일 배운 것 복습합니다
String name = 'A';
name은 참조형(reference) 변수!
String이냐 String Buffer냐 String Builder냐 고정 문자열에 대한 것을 배우게 되면 고민해야 할 부분입니다.
int = 4byte
double = 8byte
char = 2byte //유니코드도 저장할 수 있음
boolean = true; (or false;) //두가지 값만 갖는다
this.prn() //'.'을 통해서 가지고 있는 객체를 호출한다
- 오늘 배우는 것
- for문 (이해하면 테트리스 게임 짜는 것이 가능!)
for문의 구조를 외워야 합니다.
int sum = 0; for ( i = 0; i <= 100 ; i++) { sum = sum + i; }
오류가 나진 않지만 설정을 잘못 한다면 상황에 따라 무한루프에 빠질 수도 있다.
무한루프=데드락 걸렸네.
탈출 조건을 명시해줘야하는데 잘못됐기 때문에 발생하는 것.
강제로 멈추고 수정해주는 일이 필요하다.
- for문을 이용해 1과 100사이의 숫자 중 2의 배수만 출력하기(단, for문만 사용할 것)
public void ex2() { System.out.println("* * * 2의 배수(짝수)(1~100) * * *"); int i = 0; for (i=2; i<=100; i+=2) { //if(i%2 == 0) { System.out.println(i); //} } }
- for문을 이용해 1과 100사이의 숫자 중 5의 배수만 출력하기(단, for문만 사용할 것)
public void ex3() { System.out.println("* * * 5의 배수(1~100) * * *"); int i = 0; for (i=5; i<=100; i+=5) { //if(i%5 == 0) { System.out.println(i); //} } }
- for문을 이용해 1~100까지의 합을 구하기
public void ex4() { int sum = 0; //합계 int i = 0; //for문을 위한 제어 변수 for (i=1; i<=100; i++) { sum = sum + i; } System.out.println("1~100까지의 합계: " +sum); }
-위의 코드 약간의 응용
public void ex4() { int sum = 0; //합계 int i = 0; //for문을 위한 제어 변수 for (i=1; i<=100; i++) { sum = sum + i; System.out.println("1~"+i+"까지의 합계: " +sum); } //System.out.println("1~100까지의 합계: " +sum); }
- 매개 변수 세 개를 받아 연산하는 것
- x부터 y까지의 수 중 z의 배수만을 출력하시오.
public void ex7 (int x, int y, int z ) { for (int m=(x+(z-(x%z))); m<=y; m+=z) { System.out.println(m); } }
->시작값 설정을 유의해서 봅시다. x보다 크거나 같으면서 z의 배수인 수가 되게 만드는 방법.
- for문을 사용한 구구단
//n단 뽑기 public void ex10(int dan) { int r = 0; System.out.println("*************"+dan+"단"); for(int a=1; a<=9; a++){ r = dan * a; System.out.println(dan+ " * "+a+" = "+r); } } //구구단 public void ex11() { int dan = 0; int r = 0; int sum = 0; for (dan=2; dan<10; dan++) { System.out.println("*************"+dan+"단"); this.ex10(dan); // for (r=1; r<10; r++) { // sum = dan * r; // System.out.println(dan + " * "+r+" = "+sum); // } } }
- 반복 출력하기, print사용하기, 줄 바꿈 활용, 숫자 역순으로 출력하기
//for문 속 for문 public void ex12() { int x; int y; System.out.println("-----ex12"); for (x=1; x<6; x++){ for (y=1; y<6; y++) { System.out.print(x); } System.out.println(); } }
public void ex13() { int x; int y; System.out.println("-----ex13"); for (x=1; x<6; x++){ for (y=1; y<6; y++) { System.out.print(y); } System.out.println(); } }
public void ex14() { int x=0; int y=0; int k=0; System.out.println("-----ex14"); for (x=1; x<6; x++){ for (y=1; y<6; y++) { ++k; System.out.print(k+" "); } System.out.println(); } }
public void ex15() { int x=0; int y=0; int k=26; System.out.println("-----ex14"); for (x=1; x<6; x++){ for (y=1; y<6; y++) { k--; System.out.print(k+" "); } System.out.println(); } }
행이 고정되고 열(Column)이 바뀌도록 코드를 짜는 경우가 대부분입니다.
행과 열을 고정시키고 값을 어떻게 운용할 것인지를 생각하면 조금 더 수월하게 코드를 짤 수 있을 것 같습니다.
//1에서 1까지, 1에서 2까지, 1에서 3까지...., 1에서 5까지 public void ex16() { int x=0; int y=0; System.out.println("-----ex16"); for (x=1; x<6; x++){ for (y=1; y<=x; y++) { System.out.print(y); } System.out.println(); } } public void ex17() { int x=0; int y=0; int k=1; System.out.println("-----ex17"); for (x=1; x<6; x++){ for (y=1; y<=x; y++) { System.out.print(k+" "); k++; } System.out.println(); } }
'배움과 복습' 카테고리의 다른 글
API 문서 보는 방법 (0) | 2017.08.29 |
---|---|
2017-08-29 화요일 기본 배열 응용문제 (0) | 2017.08.29 |
2017-08-29 화요일 배움: 배열(Array) (0) | 2017.08.29 |
2017-08-28 월요일 배움 : for문과 while문 : 반복문 (0) | 2017.08.28 |
2017-08-24 목요일 배움 4일차 (if문) (0) | 2017.08.24 |
- Total
- Today
- Yesterday
- 데이터 딕셔너리
- Generic Type
- 테이블 데이터 복사
- FileChannel
- DI(의존성 주입)
- IS RECORD
- casring
- z-dindex
- !(not)
- 상속
- GROUP BY절
- 멤버 클래스
- NVL2()
- tables in htmll
- SQL Operator
- implements
- CLASS
- NVL()
- 로컬 클래스
- IN(var1 var2 var3)
- 계층형 쿼리
- SELECT절 명령어
- DECODE()
- 타입변환과 다형성
- 중첩 클래스
- 복수행 함수
- hierarchical query
- MONTH_BETWEEN
- Maven Project
- Interface
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |