반복문


1) for 문


public class basic13{
public static void main(String[] args){
for (int i=0; i<10; i++){
System.out.print(i);
}
}
}

반복 후 작업문에는 콤마로 분리하여 여러 문장을 둘 수 있다.


public class basic13{
public static void main(String[] args){
for (int i=0; i<10; i++, System.out.print(i)){
}
}
}


※ 결과



for 문으로 무한 반복을 하고자 하면 다음과 같이 쓸 수 있다.


public class basic13{

public static void main(String[] args){

for (int i = 0; ; i++, System.out.println(i)){

}

}

}







2) while 문

public class basic14{
public static void main(String args[]){
int i=0;
while(true){
system.out.print(i);
i++;
}
}
}



Continue & break



1) continue

continue 문은 for문에서는 반복 후 작업으로 분기하고, while문에서는 조건식으로 다음과 같이 분기한다.



import java.util.Scanner;
public class basic15 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("input 5 number");
int sum = 0;
for (int i = 0; i < 5; i++) {
int n = scanner.nextInt();
if (n <= 0)
continue;
else
sum += n;
}
System.out.println("Pnum hab : " + sum);
}
}












2) break

break 문은 하나의 반복문을 즉시 벗어날 때 사용하며 아래와 같이 그 자체가 하나의 문장이다.


import java.util.Scanner;
public class basic16 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("input exit -> return 0;");
while (true) {
System.out.println(">>");
String text = scanner.nextLine();
if (text.equals("exit"))
break;
}
System.out.println("exit program");
scanner.close();
}
}


결과





'Language > Java' 카테고리의 다른 글

Java BASIC 04 - Syntax basic 3  (0) 2016.11.23
Java BASIC 03 - Syntax basic 2  (0) 2016.11.23
Java BASIC 02 - Syntax basic1  (0) 2016.11.23
Java BASIC 01 - What is Java??  (0) 2016.11.23

연산자




시프트는 >>, << 각각 나누기 2, 곱하기 2와 같다.

최상위 비트의 빈자리를 시프트 전의 최상위 비트로 다시 채우는 산술 시프트(>>)

최상위 비트를 무조건 0으로 채우는 논리 시프트(>>>) 가 있다.


조건 연산자는 3개의 피 연산자로 구성되어 삼항 연산자라고 한다.


형식 : '조건? call1 : call2'


위의 식에서 조건이 참이면 call1이 실행되고 거짓이면 call2가 실행된다.



조건문



1) 단순 if문


import java.util.Scanner;
public class basic8{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int score = 85;
if (n % 2 == 0) {
System.out.print(n);
System.out.println("는 짝수입니다.");
}
if (score >= 80 && score <= 89)
System.out.println("학점은 B입니다.");
scanner.close();
}
}


결과















2) if-else문


import java.util.Scanner;
public class basic9 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if(n%2==0){
System.out.print(n);
System.out.println("는 짝수입니다.");
}
else{
System.out.print(n);
System.out.println("는 홀수입니다.");
}
scanner.close();
}
}


결과




3) 다중 if-else문


import java.util.Scanner;
public class basic10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
char grade;
if (score >= 90)
grade = 'a';
else if (score >= 80)
grade = 'b';
else if (score >= 70)
grade = 'c';
else
grade = 'd';
System.out.println("점수"+score+" : 학점 : "+grade);
}
}


결과














4) 중첩 if-else문


import java.util.Scanner;
public class basic11{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if (n>=90){
System.out.println("90점 이상입니다.");
if(n>=95)
System.out.println("grade : A+");
else
System.out.println("grade : A");
}
else if(n>=80){
System.out.println("80점 이상입니다.");
if(n>=85)
System.out.println("grade : B+");
else
System.out.println("grade : B");
}
else{
System.out.println("80점 이하입니다");
System.out.println("grade : C");
}
scanner.close();
}
}


결과



5) switch문

public class basic12{
public static void main(String[] args){
char grade = 'B';
switch(grade){
case 'A':
System.out.println("Congratulation!!");
System.out.println("Congratulation!!");
break;
case 'B':
System.out.println("Good!!!");
break;
case 'C':
System.out.println("try hard!!");
break;
default:
System.out.println("FFFFFFF");
break;
}
}
}

※ 결과














'Language > Java' 카테고리의 다른 글

Java BASIC 05 - syntax basic 4  (0) 2016.11.25
Java BASIC 03 - Syntax basic 2  (0) 2016.11.23
Java BASIC 02 - Syntax basic1  (0) 2016.11.23
Java BASIC 01 - What is Java??  (0) 2016.11.23

리터럴


정수 리터럴은 10진수, 8진수, 16진수, 2진수로 표현 가능하며, 자바에서는 int 타입으로 컴파일 된다.

Long타입으로 지정할 시 L이나 l을 붙여주면 가능하다.


※ 정수 리터럴




실수 리터럴은 소수점 형태나 지수 형태로 실수를 표현한 값이다. 실수 리터럴은 double타입으로 자동 처리된다.


double d = 1234E-4;

출력 : 0.1234


double d = .1234D;


출력 : 0.1234f


문자 리터럴은 ''로 문자를 표현하거나 \u 다음에 문자의 유니코드 값을 사용하여 표현한다.


char a = 'w';
char
 b = '
';
char
 c = \uae00;


특수문자 리터럴은 Escape Sequence라고도 한다.




논리 타입 리터럴은 true, false 두개이고, Boolean 타입의 변수에 직접 치환하거나 조건문에 사용한다.



상수


리터럴을 상수로 선언하면 변수처럼 표현이 가능하다.

상수는 final 키워드를 사용하여 선언한다. 상수 선언시에는 static 키워드를 이용하는 것이 바람직하다.


public class String1 {
public static void main(java.lang.String[] args) {
final double PI =3.14;
double r = 10;
double circ=r*r*PI;
System.out.println("반지름"+r+",");
System.out.println("원의 면적 = " + circ);
}


※ 결과














※ '반지름'과 같은 한글은 ANSI 표준에서 지원되지 않는 문자로 인코딩 옵션을 주어 컴파일한다.


타입 변환

자동 타입 변환 : 타입이 일치하지 않을때, 컴파일러는 작은 타입 -> 큰 타입으로 자동 변환.

강제 타입 변환 : 캐스팅(casting)이라고도 하며 큰 타입을 작은 타입에 강제적으로 변환 시킬 때 사용.

public class basic6 {
public static void main(java.lang.String[] args) {
int a = 25;
double b = 3.14*10;
double c = 1.9;
int n = (int)c;
System.out.println(n);
}
}










※ 결과




double을 int 로 캐스팅 할 경우 소숫점 자리의 수는 버림하고 정수만 표시한다.



표준 입력


System.in는 자바에서 제공하는 것으로 표준 입력 스트림 객체이다.

System.in을 직접 사용하는 응용프로그램은, 받은 바이트 정보를 문자로 스스로 변환해야 하는 번거로움이 있어

Scanner클래스를 이용한다.



※ 스트림 클래스의 주요 메소드



예제


import java.util.Scanner;

public class input {
    public static void main(String[] args) {    
        Scanner scanner = new Scanner(System.in);

        String name = scanner.next();
        System
.out.println("당신의 이름은 "+name+"입니다." );
    
        scanner.close();
    }
}


※결과




'Language > Java' 카테고리의 다른 글

Java BASIC 05 - syntax basic 4  (0) 2016.11.25
Java BASIC 04 - Syntax basic 3  (0) 2016.11.23
Java BASIC 02 - Syntax basic1  (0) 2016.11.23
Java BASIC 01 - What is Java??  (0) 2016.11.23

Java 프로그램 기본 구조


public class basic2{
public static int sum(int n, int m){
return n+m;
}
public static void main(String[] args){
int i=20;
int s;
char a;
s = sum(i,10);
a = '?';
System.out.println(a);
System.out.println("hello");
System.out.println(s);
}
}

※결과












클래스 선언


자바에서는 클래스 밖에 변수, 상수, 메소드, 전역변수 등을 생성할 수 없다.


식별자






  1. 특수문자, 공백은 식별자로 사용할 수 없으나 _, $는 예외다.
  2. 식별자로 한글을 사용할 수 있다.
  3. If, while, class 등 자바 언어의 키워드는 식별자로 사용할 수 없다.
  4. 식별자의 첫 번째 문자로는 숫자는 사용할 수 없다.
  5. Ture, false, null은 식별자로 사용할 수 없다.
  6. 대소문자를 구별한다.
  7. 길이 제한이 없다.


데이터 타입




※ C/C++에서의 char는 1byte이지만 Java는 unicode를 나타내기 위해서 2byte를 사용한다.



문자열

public class basic3{
public static void main(java.lang.String[] args){
String toolname="jdk";
System.out.println( toolname + "1.92");
}
}

자바에서의 문자열은 기본 데이터 타입이 아닌 String 클래스를 이용한다.
또한 +연산자를 이용하여 문자열끼리 연결이 가능하다.


※ 결과











변수, 연산자, 수식


1) 변수선언

public class basic4{
public static void main(java.lang.String[] args) {
int radius;
double weight=75.57;
char c1,c2,c3='a';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
}
}

컴파일 에러가 발생함

변수를 나열하여 선언할 때는 = 연산자로 초기화를 하지 않으면 초기화되지 않고 선언만 된다.

올바른 예

public class basic4{
public static void main(java.lang.String[] args) {
int radius=5;
double weight=75.57;
char c1='a';
char c2='b';
char c3='c';
System.out.println(radius);
System.out.println(weight);
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
}
}

※ 올바른 결과






















'Language > Java' 카테고리의 다른 글

Java BASIC 05 - syntax basic 4  (0) 2016.11.25
Java BASIC 04 - Syntax basic 3  (0) 2016.11.23
Java BASIC 03 - Syntax basic 2  (0) 2016.11.23
Java BASIC 01 - What is Java??  (0) 2016.11.23

Java 특징


1. 객체 지향 언어

2. 소스파일은 .java , 컴파일된 확장자는 .class

3. Javascript와는 다른언어이다.



개발 도구

1. JDK : 자바 개발환경 도구, 자바 컴파일러와 JRE, 클래스 라이브러리 샘플 소스등이 포함

2. JRE : 자바 응용프로그램 실행환경, 일반사용자는 JRE만 받아도 자바 프로그램 실행 가능



Java 프로그래밍 기초


1. 클래스 이름과 자바 소스 파일 이름이 일치해야 한다.

2. 파일명의 대소문자를 구분한다.

3. 자바 프로그램의 실행은 콘솔 환경에서 확장자 이름을 뺀 이름으로 java 명령을 이용하여 실행가능



Java 언어 특징


  1. 플랫폼 독립성 – 자바는 독립적인 바이트 코드로 컴파일 된다. JVM만 있으면 실행 가능.
  2. 객체 지향 – 객체 지향 언어로서 캡슐화, 상속, 다형성 등을 지원한다.
  3. 클래스로 캡슐화 – 캡슐화 원칙을 지켜, 변수나 메소드는 반드시 클래스 내에 구현하도록 한다. 또한 내부 클래스(Inner Class)를 만들 수 있다.
  4. 소스와 클래스 파일 – 소스가 컴파일 된 클래스 파일에는 반드시 하나의 자바 클래스만이 들어 있다. 그러므로 하나의 자바 소스 파일에 여러 개의 클래스를 작성한 후 컴파일 하면 별도의 클래스 파일이 생성된다. (ex, 4개면 4개의 Class file)
  5. 실행 모듈 – 자바 응용프로그램은 한 개의 클래스 또는 다수의 클래스로 구성되고, jar 파일 형태로 압축 가능하다. 하나의 클래스 파일에 main() 메소드가 두 개 이상이 있을 수 없다. 각 클래스는 main()을 가지는 것이 가능하다.
  6. 패키지 – 서로 관련 있는 클래스는 패키지로 묶어 관리한다.
  7. 멀티스레드 – 하나의 자바 프로그램에서 다수의 스레드가 동시에 실행 할 수 있는 환경 지원. 운영체제의 지원 없이 자바는 멀티스레드 프로그래밍이 가능하다.
  8. 가비지 컬렉션 – 자바는 메모리를 할당 받는 기능은 있지만, 메모리를 반환하는 기능은 없다. 프로그램 내의 사용되지 않는 메모리는 JVM의 가비지 컬렉션 기능에 의해 자동으로 회수된다.
  9. 실시간 응용 시스템에 부적합 – 자바 응용프로그램은 실행 도중 예측할 수 없는 시점에 가비지 컬렉션이 실행되므로 프로그램 실행이 일시적으로 중단된다. 이런 문제로 인해 일정 시간(deadline) 내에 반드시 실행 결과를 내야만 하는 실시간 시스템에는 자바 언어가 적합하지 않다.
  10. 자바 프로그램은 안전하다 – 자바 언어는 타입 체크가 매우 엄격하며, C/C++와 달리 메모리의 물리적 주소를 사용하는 포인터의 개념이 없기 때문에, 잘못된 자바 프로그램으로 인해 컴퓨터 시스템이 중단 되는 일은 없다.
  11. 프로그램 작성이 쉽다 – 자바는 포인터 개념이 없어 작성이 편하다.
  12. 실행 속도 개선을 위해 JIT 컴파일러가 사용된다. - JVM 의 인터프리터 방식 개선을 위해 JIT 컴파일러로 프로그램 실행 도중 해당 CPU에 기계어 코드를 컴파일하고 CPU가 바로 기계어를 실행하도록 한다.


Java의 시작함수는 main

public class secretpack {
public static void main(String[] args) {
System.out.println("welcome to secretpack world");
}
}



본격적인 코딩은 다음 차시에~


'Language > Java' 카테고리의 다른 글

Java BASIC 05 - syntax basic 4  (0) 2016.11.25
Java BASIC 04 - Syntax basic 3  (0) 2016.11.23
Java BASIC 03 - Syntax basic 2  (0) 2016.11.23
Java BASIC 02 - Syntax basic1  (0) 2016.11.23

+ Recent posts