Scanner 

Scanner를 사용하기 위해서는 import 를 통해서 외부 클래스를 호출

import java.util.Scanner;


다음은 Scanner 객체 생성을 해주어야 하는데

Scanner sc = new Scanner(System.in);//System.in 키보드 입력을 의미함

String name;

int Math;


name= sc.next();

Math= sc.nextInt();


이런식으로 값을 입력 받는다.


next(): 공백 이전까지의 문자열 입력받음

next + 자료형() : nextInt(), nextDouble()

nextLine(): 문자열 전체 입력 

sc.next().charAt(0);: 문자 하나 입력 받는 방법.

==, 와 equals() 의 차이점

equals 메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만,

== 연산자는 비교하고자 하는 대상의 주소값을 비교함.

직관적으로 느낄 수 있는 차이는 문자열 비교할때는 equals() 메소드를 사용하다는 것이다.


        

boolean result5 = name1.equals(name3); // 사용법

boolean result6 = (name1 == name4);

        

System.out.println("equals결과 :"+result5);  // 결과 true

System.out.println("==연산결과 :"+result6);  // 결과 false


equals 메소드는 재정의 되어 논리적인 문자열 비교를 하기 때문이다. 



String 클래스 한정적으로 equals 메소드가 문자열 내용을 비교하게 재정의 되어있다.
다른 객체를 비교할때 equals 메소드를 사용하면 똑같이 주소값으로 비교하게 된다. 그래서 객체 내용을 비교하고 싶으면 다시 재정의해서 사용해야한다



Java 반복문

기존 썼던 반복문이랑 똑같이 쓰면되는데 추가된 반복문이 있다.

for -each

for(type 변수: 데이터들 ){

//반복 처리 문장

}

int sum = 0;

int su[] = {24,6,7,36,36,65,245,56,3,64};

for ( int s : su) {

        sum+=s;

}

System.out.println(sum);

맨날 forforforofoororrr만 쓰지말고 ㅠ_ㅠ 

! while 쓰는 연습좀 하자 

반복문에서 사용되는 문장들

break;

반복중인 루프를 벗어나기 위해 사용한다.


continue;

아랫부분의 문장들을 무시하고, 반복중인 루프를 계속 처리한다.


label:

//

//

break label:

다중 루프문을 처리하고 있을 경우 지정된 label의 루프를 벗어난다.




'JAVA > JAVA 기본 문법' 카테고리의 다른 글

[JAVA]-Java Operation(메소드)  (0) 2019.01.19
[JAVA]-Java 1차원 배열  (0) 2019.01.19
[JAVA]-Java 조건문  (0) 2019.01.19
[JAVA]-Java 연산자  (0) 2019.01.19
[JAVA]-Java Data Types, 형 변환  (0) 2019.01.19

조건문

기존 언어들이랑 똑같이 사용하면된다.


#새로 알게된 정보

switch, case 구문
char, byte, short, String, int 5개를 사용할 수 있다.

long형 빼고 switch ( * ) 타입이 들어갈 수 있다.

적절하게 사용하면 좋으니까 맨날 if -else if 만 죽어라 쓰지말고 좀 switch 구문이 있다는 생각좀 해..제바류ㅠ_ㅠ

SwitchTest 예시


public class SwitchTest {

    public static void main(String[] args) {
        int score =90;
        switch (score) {
        case 100:
case 98: // 이런식으로 하면 100, 98 나오면 level1
            System.out.println("leve1");
            break;
        case 90:
            System.out.println("leve2");
            break;
        case 80:
            System.out.println("leve3");
            break;
        case 70:
            System.out.println("leve4");
            break;
        default:
            System.out.println("leve5");
            break;
        }
    }
}


break 를 따로 걸어주지 않으면 계속 계속 내려간다


'JAVA > JAVA 기본 문법' 카테고리의 다른 글

[JAVA]-Java 1차원 배열  (0) 2019.01.19
[JAVA]-Java 반복문  (0) 2019.01.19
[JAVA]-Java 연산자  (0) 2019.01.19
[JAVA]-Java Data Types, 형 변환  (0) 2019.01.19
[JAVA]-java 특징, 설치, 이클립스 단축기 소개  (0) 2019.01.19

JAVA 연산자

보통 쓰는 언어랑 똑같이 쓰면 된다.

쓸수있을때 쓰면 편한 연산자 중에 삼항 연산자가 있다.(알고 있는데 막상 쓸려면 손이 잘 안가는 문법 )

필요할땐 좀 쓰자ㅏㅏ!

?: -> 삼항 연산자

int max = (x>y)?x:y;

x>y 가 참이면 x 거짓이면 y가 출력된다.


tip)

&&,& 차이점

&&쓰면 앞에 부분을 확인하고 이미 조건이 채워지면 뒷부분을 생략하기 때문에 속도가 빠르다!


tip)

출력할때 앞쪽에 문자열이 나오면 뒷쪽도 자동으로 문자열로 바뀐다. 그래서 int형을 String 형으로 바꾸고 싶으면 간단하게 

int a=1;

String =a+""; 이런식으로 뒤에 문자열 붙여주면 자동으로 형 변환 된다.

int x =10, y=3;

출력할때 13 으로 계산하고 싶으면

System.out.println("result="+ (x + y) );

이런식으로 한번 묶어주던가 한번 변수값으로 저장한 뒤에 출력시켜주면 원하는 결과를 얻을 수 있다. 








'JAVA > JAVA 기본 문법' 카테고리의 다른 글

[JAVA]-Java 1차원 배열  (0) 2019.01.19
[JAVA]-Java 반복문  (0) 2019.01.19
[JAVA]-Java 조건문  (0) 2019.01.19
[JAVA]-Java Data Types, 형 변환  (0) 2019.01.19
[JAVA]-java 특징, 설치, 이클립스 단축기 소개  (0) 2019.01.19

자바 기본 특징

대소문자를 구분한다.

Java KeyWord : 예약어로 식별자에 이름을 붙이지 못한다.  이클립스에서는 자주색으로 바뀜

클래스 작성시 관습적으로 지켜지는 식별자를 명명하는 방법이 정해져잇다 보통 약속이기 때문에 많이 따르는데

  • class 이름은 첫글자를 대문자로 시작하고, 나머지 글자를 소문자로 명명한다.
  • method 이름은 모두 소문자로 한다.
  • variable 이름도 모두 소문자로 한다.
  • constant 이름은 모두 대문자로 한다.
Java Data Types

기본형:기본적(일반적)인 값을 기억하는 변수의 type

숫자

  • 정수형:byte(1), short(2), int(4), long(8),char(2)
  • 실수형:float(4), double(8)

논리:boolean (참,거짓)

보통 프로그래밍 할때는 int, double  많이 쓴다. 

char:글자한개 저장이 목표

참조형

class, interface, array, enum...

java는 선언과 동시에 각 타입에 맞는 default 값이 들어간다. 

배열의 경우에는 각 배열이 0으로 채워지고 boolean은 false 값이 들어가있다.


형변환(Casting) 

byte < short < int < long < float< double (*float가 long 보다 저장하는 범위가 많아서 크다. 

큰 변수에 작은 변수를 넣는건 자동으로 형 변환이 된다, 또 정수형은 실수형으로 자동형변환 된다,

ex)

long var =100;

flat fvar = var;

int kvar ='A'; (O) //이럼 'A' 글자의 아스키 코드 (65) int 타입으로 출력된다.


작은 변수형에 큰 변수형을 넣는건 불가능하다, 또 실수형이 정수형으로 타입을 변경할 경우에는 형변환이 필요하다.

float favr =100;

long var=(long)favr; 

작은 변수(long)에 큰 변수형(float)를 넣을 경우에 형변환을 해주어야한다.

그래서 형변환을 해주던가 아예 변수 선언을 다시해준다.


ex)

byte b =120;

b=b+1; 

Type mismatch 오류가 난다.

이유는 

자바에서 정수리터럴을 사용해서 연살할때 그 값은 4byte에 저장된다.

1은 4byte에 저장이 되는 정수리터럴이고 b는 1바이트만 사용하는 변수인데 이를 1바이트에 저장하니까 오류가 난다 

byte b =120;
int b2=b+1;

이런 식으로 int 타입으로 크게 바꿔주거나

byte b =120;
b=(byte)(b+1);

계산 결과 값을 다시 byte 타입으로 형변환 시켜준다.

보통 이런 상황을 피하고자 int, double 타입을 많이 사용한다.


byte b1 =10;
byte b2 =20;
byte b3 =(byte)(10+20);
        
long i = 100L;
int j =(int)i;
float f =3.1415924168f;
double d=3.1415924168;
char c ='A';
String cc ="AB";
int k =66;
char ccc=(char)k;
boolean boo = true;
boolean bool = false;
     
System.out.println(b2+"."+b3);
System.out.println(i+"."+j);
System.out.println(f+"."+d);
System.out.println(c+"."+cc);
System.out.println(k+"."+ccc);
System.out.println(boo+"."+bool);


결과값:

20.30

100.100

3.1415925.3.1415924168 //float 형보다 double 형이 더 많이 나온다 

A.AB

66.B // int 형 k 를 char로 형변환 시켜줘서 66의 아스키 값인 B가 나온다.

true.false


'JAVA > JAVA 기본 문법' 카테고리의 다른 글

[JAVA]-Java 1차원 배열  (0) 2019.01.19
[JAVA]-Java 반복문  (0) 2019.01.19
[JAVA]-Java 조건문  (0) 2019.01.19
[JAVA]-Java 연산자  (0) 2019.01.19
[JAVA]-java 특징, 설치, 이클립스 단축기 소개  (0) 2019.01.19

Java 대표적인 특징


1. 객체 지향 언어 - 객체를 이용해 모아모아서 하나의 완성된 프로그램을 완성 !

  • 클래스 단위의 부품 
  • #추상화
  • #캡슐화
  • #상속
  • #다형성


2. 플랫폼이 독립적

HelloTest.java(소스코드) => Compile(javac) => HelloTest.class(실행파일) => Execute(java) => JVM

플랫폼이 linux, Mac, window 다양한데 자바 실행 파일(.class) 이 모두 돌아가는 이유는 JVM 때문이다.

이런 이유로 C 보다 속도가 느리다.

쉽게 설명하면

Java로 작성된 응용프로그램은 JVM 위에서 작동되어 지기 때문에 

Java의 컴파일 코드는 플랫폼이 이해하는 코드로 번역되는 것이 아니고 JVM이 해석 가능하도록 번역된다. 

그렇기 때문에 어떤 HW라도 JVM만 설치되면 Java로 작성된 응용프로그램은 실행이 가능한 플랫폼에 독립적인 구조이다.


+

  • 메모리 관리가 쉽다 
  • 분산 프로그래밍 지원
  • 멀티 스레드 


3. 보통 개발 도구는 이클립스를 많이 사용하는데 .


도움이 되는 단축기 정리를 해보자면 

  • // : 한줄 주석
  • /* */ : 여러줄 주석
  • ctrl + shift + /:여러줄 주석
  • ctrl + / :여러줄 주석
  • alt + 방향키 : 줄이동
  • sysout+ctrl+space:자동완성
  • main+ctrl+space:main메서드 자동완성 
  • ctrl+F11 :실행
  • ctrl+M :전체 화면 
  • ctrl+D :줄 삭제
  • ctrl + alt :줄 복사
  • 네이게이션 단축기: ctrl +마우스 클릭, F3, 클래스/메서드/변수의 선언된 곳으로 화면 이동 
  •                        : Alt+ 왼쪽/오른쪽 방향키: 이전/이후 화면으로 이동 


'JAVA > JAVA 기본 문법' 카테고리의 다른 글

[JAVA]-Java 1차원 배열  (0) 2019.01.19
[JAVA]-Java 반복문  (0) 2019.01.19
[JAVA]-Java 조건문  (0) 2019.01.19
[JAVA]-Java 연산자  (0) 2019.01.19
[JAVA]-Java Data Types, 형 변환  (0) 2019.01.19

+ Recent posts