본문 바로가기
IT 개발/JAVA

JAVA (2일차) - 기초 다지기

by Love of fate 2019. 6. 13.
728x90
반응형
간단한 계산, 삼항연산자, 윤년구하기
package com.day2;
 
import java.io.*;
 
class Test1 {
 
    public static void main(String[] args) throws IOException    {
 
        //선언
        BufferedReader br = new BufferedReader (
            new InputStreamReader (System.in));
 
        //String a,b;
        int num1, num2;
 
        //입력
        System.out.print("첫번째 수?"); //50
        //a = br.readLine();
        //num1 = Integer.parseInt(a);
        num1 = Integer.parseInt(br.readLine());
        //num1 = Double.parseDouble(br.readLine()); - 에러남. 선언한 자료형이 Double이 아니기 때문.
 
        System.out.print("두번째 수?"); //30
        num2 = Integer.parseInt(br.readLine());
 
        //연산
        //int num3 = num1 + num2;
        //System.out.println(num3);
 
        //출력+연산
        System.out.printf("%d+%d=%d\t", num1, num2, (num1+num2)); //\t : tab 일정값 띄어짐.!! 
        System.out.printf("%d-%d=%d\n", num1, num2, (num1-num2));
        System.out.printf("%d*%d=%d\t", num1, num2, (num1*num2));
        System.out.printf("%d/%d=%d\n", num1, num2, (num1/num2)); //나누기는 몫만 가져옴. 
        System.out.printf("%d%%%d=%d\n", num1, num2, (num1%num2)); //% : 나누기 나머지 값 가져옴.
 
        System.out.println("----------------------------");
 
        //숫자를 부등호로 비교하면 true, false 문자가 생성.
        System.out.println("num1>num2 : " + (num1 > num2));
 
        String str;
 
        //삼항연산자
        str = num1%2 == 0?"짝수" : "홀수";
        // num1%2 == 0? : 1항, "짝수" :2항,  "홀수" : 3항.
        
        str = num1>0?"양수":(num1<0?"음수":"영");
 
        //&& : A and B
        //|| : A or B
        //!= : 같지 않다.
 
        str = num1%4==0 && num1%100!=0 || num1%400==0?"윤년" : "평년"// 윤년 구하기 공식
 
        System.out.println(num1 + ":" + str);
 
 
 
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

* 실행 결과

첫번째 수?10

두번째 수?2

10+2=12    10-2=8

10*2=20    10/2=5

10%2=0

----------------------------

num1>num2 : true

10:평년

 

밑변(width)과 높이(height)를 입력받아 삼각형의 면적(area)을 구하기.
package com.day2;
 
import java.io.*;
 
class  Test2 {
 
    public static void main(String[] args) throws IOException {
 
        //선언
        BufferedReader br = new BufferedReader (
            new InputStreamReader(System.in));
 
        int width;
        int height;
        double area;
 
        //입력
        System.out.print("밑변 ? ");
        width = Integer.parseInt(br.readLine()); 
 
        System.out.print("높이 ? ");
        height = Integer.parseInt(br.readLine());
 
        //연산
        //area = (double)width * height / 2 ; //강제형변환.
        area = width * height / 2.0 ; //암시적 형변환.
 
        //출력
        System.out.println("넓이 : " + area);
 
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

* 실행 결과

밑변 ? 5

높이 ? 8

넓이 : 20.0

 

for문(반복문)
package com.day2;
 
class Test3 {
    
    public static void main(String[] args) {
 
        float f = 0;
        double d = 0;
 
        // 반복문
        // for(초기값, 조건, 증가값)
        for (int i = 1; i <= 100000; i++) {
 
            f = f + 100000;
            d = d + 100000;
 
        }
 
        System.out.println("float: " + (f / 100000)); // 복잡한 연산을 float로 계산하면 데이터
                                                        // 손실이 생길 수 있다.
        System.out.println("double: " + (d / 100000));
 
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

* 실행 결과

float99996.055

double100000.0

 

Char 자료형, ASCII코드, BufferedReader
package com.day2;
 
import java.io.*;
 
class Test4 {
    public static void main(String[] args) throws IOException {
 
     // Char(캐릭터)은 문자를 저장.
     // char ch = 'a'; //= 97(ASCII 코드 값이 저장됨)
     // 오로지 한개의 문자를 저장. 
     // char ch = 'asb'; 한개의 문자만 저장하기 때문에 출력 시 a만 출력됨.
     
     char ch, result;
 
     System.out.print("한개의 문자?"); // a(97) 97=ASCII 
     ch = (char)System.in.read();
     
     //한개의 문자를 읽어냄. 
     //BufferedReader를 쓸 경우 BufferedReader는 한개의 문자가 아닌 다수의 문자를 읽어내기 때문에 
     //char 자료형에 쓸 경우 에러가 난다.
     //read는 입력스트림(InputStream)으로부터 데이터의 바이트를 읽어들여(ASCII 코드값 읽어옴) int로 저장함.
     //문자의 유니코드 값이 int로 변환이 되었는데 ch 변수의 자료형은 char이기 때문에 오류가 남.
     //그래서 강제형변환을 해야함.
 
     System.out.println(Integer.toString(ch));
     //Integer를 String(문자)로 바꿔줘라. : toString : 원래의 문자로 바꿔달라 (ASCII)
     //ASCII 코드가 나옴. a = 97
 
     System.out.println(ch);
     //실제로 ASCII 값을 사용하지 않기때문에 a라고 입력하면 a가 나옴.
 
     result = ch>=65 && ch<=90?(char)(ch+32):(ch>=97&&ch<=122? (char)(ch-32):ch);
     // (ch>='a'&&ch<='z'? (char)(ch-32):ch); 처럼 사용해도 됨.
     // ASCII 코드는 대문자가 소문자보다 32가 작다. 
     // ex) 대문자 A : 65, 소문자 a : 97
 
     System.out.println(ch + ":" + result);
 
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

* 실행 결과

한개의 문자?a
97
a
a:A

 

제어문 : 제어문을 배워야 프로그래밍이 풍성해짐. (if, swich, for, while, do~while)
if문 (짝수, 홀수 판별하기)
package com.day2;
import java.io.*;
 
class Test5 {
    public static void main(String[] args) throws IOException    {
 
        //제어문 : 제어문을 배워야 프로그래밍이 풍성해짐.
        //if, swich, for, while, do~while
 
        BufferedReader br = new BufferedReader (
            new InputStreamReader(System.in));
 
        int num;//null 
 
        System.out.print("수 입력");
        num = Integer.parseInt(br.readLine());
        
        String str; 
 
        //if(조건절) - if는 초기값을 설정해야 한다. //String str = ""; 
        // 단일 IF문을 쓸때는 초기값을 설정하지 않았을경우 쓰레기 값이 표시가 되는데
        // 쓰레기 값은 표시되지 않기 때문에 오류가 남.
        // If~else문을 쓸때는 두개의 값중 하나는 나오겠구나라는걸 알기 때문에 초기값을
        // 설정하지 않아도 오류가 나지 않음.
 
        //단일 if문
        /*
        if(num%2==0){
 
            str = "짝수";
        }
 
        if (num%2!=0){
            str = "홀수";
        }
        */
 
        //if~else문
        if(num%2==0){
 
            str = "짝수";
 
        }else{
 
            str = "홀수";
        }
 
        System.out.println(num + ":" + str);
 
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

* 실행 결과

수 입력11

11:홀수

 

else if (수, 우, 미, 양, 가 판별하기)
package com.day2;
 
import java.util.Scanner;
 
class Test6 {
    public static void main(String[] args) 
    {
        Scanner sc = new Scanner(System.in); 
 
        String name;
        int kor;
 
        System.out.print("이름?"); //수지
        name = sc.next(); //sc에 있는걸 꺼내옴.
 
        System.out.print("국어?");//60
        kor = sc.nextInt(); 
 
        String pan;
 
        //Scanner는 throws IOException을 사용 안한다.!! 편함.
        //if ~ else : 2개의 조건을 사용할떄.  
        //if ~ else if : 2개 이상의 조건을 사용할때.
 
        if(kor>=90){ //조건 사용할때 가장 상단의 작성하는 조건에 가장크게 작성해야한다.
            pan ="수";
        }else if(kor>=80){
            pan = "우"
        }else if(kor>=70){
            pan = "미";
        }else if(kor>=60){
            pan = "양";
        }else{
            pan="가";
        }
 
        System.out.println(name + ":" + kor + ":" + pan);
 
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

* 실행 결과

이름?suzi
국어?80
suzi:80:우

 

Scanner 사용
package com.day2;
 
import java.util.Scanner;
 
class Test7 {
    public static void main(String[] args) {
 
     //문자의 단락패턴을 사용해 분류.
     //기본 단락은 공백
 
     Scanner sc = new Scanner (System.in);
 
     String name;
     int kor, eng, mat;
 
    //suzi 40 60 70 
    //연결된 문자를 공백으로 구분하여 한번에 입력
    /* BufferedReader는 전부다 하나하나 출력해야함
        System.out.print("이름 ?");
        System.out.print("국어 ?"); 
        System.out.print("영어 ?"); 
        System.out.print("수학 ?");
    */
    //System.out.print("이름 국어 영어 수학?");
 
    //suzi,40,60,70
 
    System.out.print("이름, 국어, 영어, 수학?");
 
    //콤마로 구분된 데이터 읽기 
    sc = new Scanner(sc.next()).useDelimiter("\\s*,\\s*"); 
    //\\s*,\\s* :정교화 표현식, \\s* : 공백 
    //공백없이 콤마로 구분해라 
    //공백을 기본으로 인식하기 때문에 suzi, 40, 60, 70로 작성하면 에러남
 
     name = sc.next();
     kor = sc.nextInt();
     eng = sc.nextInt();
     mat = sc.nextInt();
     //next (); 스캐너 
 
     sc.close();
 
     System.out.println(name + ":" + (kor+eng+mat) + "점");
        
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

* 실행 결과

이름, 국어, 영어, 수학?suzi,40,60,70
suzi:170점
728x90
반응형

'IT 개발 > JAVA' 카테고리의 다른 글

poi 라이브러리 / Excel DB 적재  (0) 2020.01.14
Date 관련 클래스  (0) 2019.08.13
JAVA (3일차) - 반복분  (0) 2019.06.15
JAVA (1일차) - 기초 다지기  (0) 2019.06.13
JDBC 1일차 (DB 연동, 삽입, 수정, 삭제)  (0) 2019.01.31