예외 : 런타임 에러, 프로그램 실행 중 어떤 이유로 뻗는거 // 잘못된 코드, 부정확한 데이터, 예외적인 상황에 의하여 발생하는 오류


예외처리 : 런타임에러가 생겼을때 어떻게 대응할지에 대한 명세를 작성해 주는거-> 그러면 예외가 발생해도 프로그램이 뻗지 않고 계속 동작.


예외의 종류 3 : Error (시스템에서 발생) // RuntimeException (선택적으로 예외 처리) // IOException (예외 처리 필수)


체크 예외 : 컴파일러가 예외 처리를 강요

비체크 예외 : 컴파일러가 신경 안쓰는 예외






public static String readString() throws IOException{

//해당 함수의 몸통안에 IOExeption을 발생시키는 코드를 예외처리하지 않고 사용가능//해당 함수를 호출하는 녀석은 IOException에 대한 책임을 가짐




class DivideByZeroException extends ArithmeticException{

public DivideByZeroException()

{

super("0으로 나눌수는 없음.");

}

}

public class ExceptionTest {

public static void main(String[] args) {

double result;

try{

result = quotient(1,0);

}

catch(DivideByZeroException e){

System.out.println(e.toString());

}

}

public static double quotient(int n, int d)

throws DivideByZeroException

{

if( d == 0)

throw new DivideByZeroException();

return(double) n/d;

}

}



finally 블록의 절대적 필요성은 try나 catch구문에서 함수 return등으로,, 이 다음 코드로 진행이 아닌 경우 처리해야 될 코드를 수행하기 위해



' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day20 입출력  (0) 2016.04.08
Day19 스레드  (0) 2016.04.07
Day17 제네릭과 컬렉션  (0) 2016.04.05
Day16 패키지  (0) 2016.04.04
Day15 전략패턴  (0) 2016.04.01

1. 자바 프로그램을 개발하는데 개발 도구를 JDK 라고 한다.

2. JDK와 JDE의 차이점은 무엇인가? JDK > JRE(자바실행기능) + 개발도구

3. 사용자로부터 값을 입력 받으려면 Scanner 클래스를 사용하는 것이 편리하다.

4. Scanner 클래스에서 사용자로부터 정수를 입력 받는 메소드의 이름은 nextInt() 이다.

5. 주석은 프로그램에 대한 설명이다.

6. 입력을 받아서 작업을 수행하고 결과를 내보내는 작은 기계로 생각할 수 있는 것은 메소드(함수)이다.

7. 모든 자바 소스 파일의 확장자는 .java 이다.

8. 프로그램에서 데이터를 저장하는 공간은 변수이다.

9. 변수에 값을 저장하는 연산을 대입연산이라고한다.

10. 실행 도중에 값이 변하지 않는 수를 상수라고 한다.

11. 컴파일 시에 오류가 없는데도 원하는 결과가 나오지 않는다면 논리오류가 있는 것이다.

12. 변수에 새로운 값이 대입되면 기존의 값은 어떻게 되는가? 기존의 값은 없어진다.

13. days 와 Days는 동일한 변수인가 아닌가? 아니다.

14. 자바의 변수 타입은 기초 변수와 참조 변수로 나뉜다.

15. 다음 중에서 올바르지 않은 변수 이름은?

 x8items, march09, sales_report, theProfit2009, theProfit2009, #ofPlayer

16. case 절에서 break 문을 생략하면 어떻게 되는가? 다음 case로 넘어간다.


17. 다음 코드의 출력을 쓰시오


for(int i =1; i < 6; i++)

forI(int j = 5; j >= 1, j--)

System.out println(i + "곱하기" + j + "은" + i*j);


    


18. 다음 코드의 출력을 쓰시오

int n = 12;

while (n >0) {

n = n - 2;

if( n == 6 )

break;

System.out.println(n);            10,8


   


19. 위의 문제에서 break를 continue로 변경하면 어떻게 되는가?    10,8,4,2,0


   

 




1. 사용자로부터 3개의 정수를 읽어서 평균값을 계산하여 출력하는 프로그램을 작성하라.


   


2. 초 단위의 시간을 입력 받아서 시/분/초로 변환하는 프로그램을 작상하여 보자. ex) 3661초는 1시간 1분 1초이다.


  


3. 10000보다 작은 정수를 입력 받아서 이것을 천의 자리, 백의 자리, 십의 자리, 일의 자리로 분리하여 출력하는 프로그램을 작성하시오.

  

  


4. 사용자한테 이름과 나이를 물어보고 화면에 이름과 나이를 다시 출력하는 프로그램을 작성하시오.

  

   


5. 1부터 500까지의 정수의 합을 구하시오.

 

  


6. 상점에서 하나에 100원인 물건을 판매하고 있다, 물건을 10개 이상 구입하는 고객에게는 10%를 할인 해준다. 

사용자가 구입한 물건의 개수를 입력하면 전체 가격이 얼마인지를 계산해주는 프로그램을 작성하라. 

(즉 물건의 개수가 10%이상이면 10%할인한 가격으로 계산을 하여야한다.)


   


7. 특정한 정수를 읽어 들여서 0과 해당 정수 사이에 있는 모든 3의 배수를 출력하는 프로그램을 작성하라.

   만약 입력 정수 값이 0보다 작으면 오류 메시지를 출력하라.


    


8. 구구단표를 화면에 출력하는 프로그램을 작성하시오. (2단~9단까지 중첩 for문을 이용하시오.)

 

   




9. 피보나치 수열은 다음과 같이 0과 1로 시작하여 앞의 두 수를 더해 다음의 수를 계산해내는 수열이다.

    피보나치 수열을 생성하여 출력하는 프로그램을 작성해보시오.


0,1,1,2,3,5,8,13,21,34,55




   



' IOT 기반 응용 SW과정 > Review' 카테고리의 다른 글

排序  (0) 2016.03.23
反复文  (0) 2016.03.22
成绩,闰年,  (0) 2016.03.17
中间值输出  (0) 2016.03.17
练习02-07  (0) 2016.03.17

조건문 (if) //  반복문

    

조건문 ex) 만약 비가 오지 않으면 테니스를 친다.

만약 결석이 1/3이상이면 F학점을 받는다.

만약 시간이 없는 경우에는 택시를 탄다.



if 문이 오면 다음 한문장만 인식 / 두문장 이상은 {} 필수


else // if 문법은 혼자서도 실행가능하나 , else 문법은 무조건 if 필요함.



초기화 되지 않은 변수는 사용할 수 없다.



if 문법 -> if(조건식) 조건이 참일 경우 if문에 포함된 문장을 실행 두문장 이상을 if문에 포함시키려면 중괄호로 문장들을 감싸면 됨,




<Math>


Math라는 꾸러미는 각종 수학적인 기능들을 담고있음

ex> random, pi, abs, pow


Math.random() <- 0.0000000~0.9999999까지의 임의의 숫자를 갖다줌.

Math.random()*6 <- 0.0000000 ~ 5.9999999

(int)(Math.random() * 6) <- 0~5

(int)(Math.random() * 6) +1 <- 1~6



<switch 문법>


switch(변수) 

{

case 값:

문장 

case 값:

문장


break ->중괄호 밖으로 내보내기

default : 매칭되는 케이스가 없을시 이동






<반복문>

while // for // do..while


while 문법 : if문이랑 문법이 같음, if는 조건식을 확인하고 참이면 문장수행, while은 조건식 확인하고 참이면 문장수행 후, 다시 조건식 확인, 틀리면 끝.



=반복계수=




' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 07 배열  (0) 2016.03.22
Day 06 复习  (0) 2016.03.21
Day 04 변수  (0) 2016.03.17
Day 03 영역  (0) 2016.03.16
Day 02 메소드  (0) 2016.03.15

百見不如一打 : 수백 번 본들 한번 쳐보고 실행해볼만 하다.




변수는 타입과 이름(바구니 구분용)을 가지고 있다.

:변수는 값을 담는 바구니인데 값의 유형에 따라 바구니의 유형도 여러가지가 있음

ex) ch, i, fvalue


변수의 초기화 : 변수에 처음으로 값을 넣어주는 것


ex) int x; 

int 타입의 변수 x를 생성, 정수를 담을 수 있는 바구니 x를 생성, 정수변수 x를 선언

x = 100 

x라는 변수에 100이라는 값을 담음, x라는 변수의 값을 100으로 초기화


수(constant)는 프로그램이 실행하는 동한 변하지 않는 수.

10.0 : 실수상수 // 10 : 정수상수 // 'a' : 문자상수(한글자만) // "a" : 문자열상수 


수식(expression)은 피연산자와 연산자로 이루어진다, 결과값을 가진다.

x = 100 / y = 200 / sum = x + y



대입 연산자 오른쪽에 있는 값을 왼쪽의 변수에 담음    

대입 연산자 == 할당 연산자 == 배정 연산자                     /* ==  : 같다 */





산술 연산자 

프로그래밍에서는 두개의 피연산자가 같은 타입이면 결과도 그 타입이 나와야함

문자열끼리의 산술은 이어붙임




ex) 4/3 = 1  <- 정수와 정수를 연산했기에 결과도 정수(소수버림)

   5.0/2 = 2.5 <- 서로 다른놈들 연산하면 더 큰타입의 결과로 나옴(문자열>실수>정수)

   6.0/3 = 2.0 // 6/3 = 2





System : 필수기능, 그냥 언제든 사용가능

out : 표준출력 -> 모니토로 데이터를 출력할 수 있는 기능을 가진 꾸러미

in   : 표준입력 -> 키보드로부터 데이터를 읽어들일 수 있는 기능을 가진 꾸러미

Scanner : 입력데이터를 편리하게 가공해주는 도우미 꾸러미, 외부에 있어서 임포트 선언 해야 사용가능 < import java.util.Scanner; >

                                              

  /* Ctrl + space : 자동완성 단축키

sysout <- Ctrl+spase = System.out.print(); */


 






nextInt키보드로부터 들어오는 다음 데이터를 정수로 읽어서 갖다줌, 대기하다가 데이터가 들어오면 정수로 가공해서 가공한 결과를 return.

서식문자 : %시리즈 // %d : 십진수를 나타냄





지역변수 : {}블록안에서 만들어진 변수

-> 변수선언문을 만날때 생성(공간할당), 자신이 포함된 함수가 종료될때 없어짐


스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다


먼저만들어진놈이 꼭 늦게 없어짐

// LIFO : Last-In, First-out  

늦게만들어진놈이 꼭 먼저 없어짐


/* 큐(queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다.  */



스택영역(stack) : 지역변수들의 저장

힙영역(heap) : 동적으로 할당한 데이터들이 저장 (기초자료형이 아닌 데이터)


/** 프로그래밍에서,, 정적 : 컴파일시에 미리 예측가능하며 결정된 사항

    동적 : 실행시에 결정되는 사항




<오류>


* 컴파일 오류(compile-error) : 컴파일이 실패한거 (ex. 문법이 틀림)  <--대놓고 발견


* 실행 오류(rum-time error) : 실행중에 프로그램이 뻗는거 (ex. 정수입력 받을라고 스캐너 대기중인데 문자입력..)                        <-- 테스팅 통해 발견       


* 논리 오류(logical error) : 컴파일/런타임 에러 없이 잘 동작했는데, 프로그램 결과가 원한값이 아님.                                                          




자바란?

* 이식성이 높은 언어이다. <- 서로 다른 실행환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수있는것, 자바 실행 환경 (JRE : Java Runtime Environment)


* 객체 지향 언어이다. <- 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는기법 : 객체 지향 프로그램(OOP : Object Oriented Programming)  


* 메모리를 자동으로 관리한다. <- 쓰레기 수집기(Garbage Collector)


**막강한 오픈소스 라이브러리가 풍부하다.


자바 가상 기계(JVM)  

"Write once, run anywhere."



' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18
Day 04 변수  (0) 2016.03.17
Day 02 메소드  (0) 2016.03.15
Day 01 开始  (0) 2016.03.14
프로그램 : 컴퓨터가 동장해야되는 수행 명세
데이터 > 정보 : 의미있는 데이터

事物인터넷 : IOT // 한국사물인터넷협회

->융합기술(스마트+빅데이터)


스마트 : 유비쿼터스진행형 [백색가전제어, 로봇*드론 조작]
빅데이터 : 통계분석 [센서,기타 데이터 창출매체와 인터넷연결]

<이동통신규격>


\ 웹페이지 \
HTML에 의해서 구조가 잡히고, CSS에 의해서 꾸며지고, Flash/Java Script(JQeury)에 의해서 동적으로 반응


CLI - Command Line Interface    (cd..// cd [ ] )

[dir - dos 기반 CLI에서 현재 폴더의 리스트를 출력]


GUI - Graphic User Interface



자바를 이용해서 프로그램을 개발하시려면, 자바 개발환경을 갖추고(JDK),
 적절한 자바 개발환경을 셋팅

Java SE Development Kit (JDK) - 제작 > JRE - 실행


환경변수에 경로등록

해당 경로에 있는 파일들이 어디서나 실행가능하도록 등록 

[C:\Program Files\Java\jdk1.8.0_73\bin]


내컴퓨터 속성 고급시스템 / 고급탭 - 환경변수 - 아래박스

Path 변수값 찾아서 더블클릭

맨 뒤에 : 추가 하고 자바 경로를 붙여놓고 확인 


(EX)


java 프로그램 개발 단계

어셈블리어 [ ADD연산 3 5 - 00 0011 0101

MULT연산- 10

SUBT연산 - 01

    DIV연산 - 11                ]


컴파일(러.javac) - 사람이 프로그래밍 언어의 문법에 맞춰 작성한 소스코드를 컴퓨터가 

실행가능한 기계언어로 번역, 번역된 기계어를 

자바가상머신(클래스 적재기, 바이트 코드 검증기)에 투척하면 프로그램이 실행됨



통합 개발 환경( integrated development environment)  - IDE


++이클립스++









' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18
Day 04 변수  (0) 2016.03.17
Day 03 영역  (0) 2016.03.16
Day 02 메소드  (0) 2016.03.15

+ Recent posts