본문 바로가기

배운 책들 정리/자바 완전 정복

자바의 정석 3 - 연산자 (scanner, charat, next, 삼항연산자) 등등

1 프로젝트 설명 & 기타 설명(큰 그림)

1. 프로젝트 페이지 참고

큰 카테고리 = 패키지

세부 카테고리 = 클래스

 

 

디비컷 - 웹디자인 평가 및 우수 웹사이트 모음

국내외 우수 웹디자인 레퍼런스 사이트

www.dbcut.com

 

 

2. github 이클립스 연동 (본인은 이미 되어 있어서 상관 없음) // 

 

 

 

RosePaku - Overview

Prayer for the Einstein in the heaven. RosePaku has 9 repositories available. Follow their code on GitHub.

github.com

 

 

2 복습

1. 0508 복습 (변수의 종류 ~ 형변환)

 

* 변수의 종류 ~ 형변환

 

package j0509;

public class Class0509_01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 변수 - 8가지
		// 논리형 - boolean
		// 문자형 - char
		// 정수형 - byte, short, int, long
		// 실수형 - float, double
		// 문자열 - String
		char ch = 'a'; // 2개의 글자, 공백이 없는건 안 들어감
		// A = 65, a = 97 (32 차이), 0-48 // 알파벳 26개
		int num = 1;
		int num2 = 2;
		int num3 = 3;
		int num4 = 4;
		int num5 = 5;
	
		System.out.printf("더하기 결과값 : %d \n",num+num2);
		System.out.printf("나누기 결과값 :"
				+ " %f \n",num/(double)num2);
		System.out.printf("더하기 결과값 : ",num+num2);
		System.out.println(num+num2);
		System.out.println(num-num2);
		System.out.println(num*num2);
		System.out.println(num/(double)num2); // 실수형변환 해야 한다
		System.out.println(10/3);
		System.out.println(10-3);
		System.out.println(10*3);
		System.out.println(10/3);
		
		
		
		
		
		
	}

}

 

3 이론

1. printf()

 

 

2. Scanner란

 

3. 증감연산자

 

 

4. 삼항연산자

 

 

 

5. 이항연산자의 특징

 

 

int d가 문제 생길 수도..

 

 

0을 빼주면 무조건 숫자형으로 변환 된다.

 

 

 

 

4 실습

1. \t 사용법

 

package j0509;

public class Class0509_02 {

	public static void main(String[] args) {
		int kor = 100;
		int eng = 90;
		int math = 89;
		int total = kor+eng+math;
		double avg = total/3.0;
		System.out.println("-----------------");
		System.out.println("국어\t영어\t수학\t합계\t평균");
		System.out.println("-----------------");
		System.out.printf("%d\t%d\t%d\t%d\t%.2f \n",kor,eng,math,total,avg);
		
		
		
		
		
	}

}

 

2. Scanner & nextInt 사용법

 

package j0509;

import java.util.Scanner;

public class Class0509_03 {

	public static void main(String[] args) {
		double kor = 0;
		int eng = 98;
		int math = 100;
		String name = "";
		
		//데이터 입력 - 화면에서 입력을 받겠다.
		Scanner scan = new Scanner(System.in); 
		System.out.println("이름을 입력하세요");
//		name = scan.next(); //너무 좋아요 (부분만 입력 받음)
		name = scan.nextLine(); // 너무 좋아요 함께 해요. (전체 다 입력 받음)
		System.out.println("국어점수를 입력하세요");
		kor = scan.nextInt();
		System.out.println("영어점수를 입력하세요");
		eng = scan.nextInt();
		System.out.println("수학점수를 입력하세요");
		math = scan.nextInt();
		
		
		
//		String str = new String("aaa");
//		String str2 = "aaa";
//		java.util.Scanner
		
		double total = kor+eng+math;
		double avg = total/3.0;
		System.out.println("--------------------------------------------");
		System.out.println("이름\t국어\t영어\t수학\t합계짱짱\t\t평균");
		System.out.printf("%s\t%.1f\t%d\t%d\t%f\t%.2f \n",name,kor,eng,math,total,avg);
		System.out.println("--------------------------------------------");

		
	}

}

 

3 문제풀이 - scanner, nextint 사용

 

package j0509;

import java.util.Scanner;

public class Class0509_04 {

	public static void main(String[] args) {
		// 아이디, 패스워드, 이름을 입력 받아 출력하시오.
		// 문자열, 정수형, 문자열
		// 아이디, 패스워드, 이름을 입력 받아 출력하시오.
		// abcd 1111 홍길동
		
		//1. 변수 선언
		String id = "";
		String pw = "";
		String name = "";
		
		//2.Scanner - 입력클래스
		Scanner scan = new Scanner(System.in);
		System.out.println("아이디를 입력하세요");
		id = scan.nextLine();
//		id = scan.next(); // next() - 문자만 입력받음, nextLine() 
		System.out.println("패스워드를 입력하세요");
		pw = scan.nextLine();
		System.out.println("이름을 입력하세요");
		name = scan.nextLine();
		
		
		
		
		System.out.println("----------------------------------");
		System.out.println("아이디\t패스워드\t이름");
		System.out.println("----------------------------------");
		System.out.printf("%s\t%s\t%s \n",id,pw,name);
		
		
	}

}

 

4. 우선순위 & 증감연산자

 

 

package j0509;



public class Class0509_05 {

	public static void main(String[] args) {
//		int result = 3 + (4*5); // 23
		int num1 = 3;
		int num2 = 4;
		int num3 = 5;
//		int result = (num2*num3)+num1; //23
//		System.out.println(result);
		
		++num3; 
//		int result = ++num3; //5+1=6
//		System.out.println(result);
		
		num2++; // num2 = num2+1;
//		System.out.println("num3 : "+num3);
		
		int result2 = num2++; //4
		System.out.println(result2);
		System.out.println("num2 : "+num2);
		
		
	}

}

 

5. 삼항연산자 - 문제풀이 1

 

package j0509;

import java.util.Scanner;


public class Class0509_06 {

	public static void main(String[] args) {
		
		int num = 0;
		Scanner scan = new Scanner(System.in);
		System.out.println("숫자를 입력하세요");
		num = scan.nextInt();
		String answer2 = (num>10)?"10보다 큽니다.":(num==10)?"10과 같습니다.":"10이 아닙니다";
		System.out.println(answer2);
		
		
		
//		int num = 5;
//		// int result = ++num; //num 1을 더해서 그 결과값을 result 대입
//		int result = num++; //result에 먼저 값을 대입한 후 num을 1을 더함.
//		System.out.println(result);
//		
//		String answer = (num>1)?"1보다 큽니다.":"1보다 작습니다.";
//		System.out.println(answer);
//		
		// 1개의 정수형을 입력 받아 10보다 큰수인지 출력하시오.

		
		// 정수를 입력받아 음수 양수로 양수면 음수로 변경하시오.
		System.out.println("음수는 양수로, 양수는 음수로 변경합니다. 숫자를 입력하세요.");
		num = scan.nextInt();
		int result2 = (num>0)?-num:-num;
		System.out.println("결과값 : "+result2);
	}

}

 

6. 삼항연산자 - 문제풀이 2

 

package j0509;

import java.util.Scanner;

import javax.print.DocFlavor.INPUT_STREAM;

public class Class0509_08 {

	public static void main(String[] args) {
		
		// 숫자를 입력 받아 짝수인지 홀수인지 출력하시오.
		// 짝수입니다. 홀수입니다.
		// 1. 변수선언 2. 입력 3. 출력.
		
		int num = 0;
		Scanner scan = new Scanner(System.in);
		
		System.out.println("숫자 입력하셈");
		num = scan.nextInt();
		
		String answer = (num%2==0)?"짝수입니다":"홀수입니다";
		System.out.println(answer);
				
//		System.out.println("짝수입니다.");
		
		
		
		
	}

}

 

7. 소문자 -> 대문자 변환 (scan.next().charAt(0))

 

package j0509;

//import java.util.Scanner;



public class Class0509_08 {

	public static void main(String[] args) {
		
//		4)
//		byte a = 10;
//		byte b = 20;
//		int c = a+b;

//		5)
		int a = 1000000;
		int b = 2000000;
		long c = a * b; // 오버 플로우 발생
//		long c = (long)(a) * b;
		System.out.println(c);
		
		
//		char ch = 'A';
//		char ch = ' ';
//		Scanner scan = new Scanner(System.in);
		
//		int num = ch+1;
//		System.out.println((char)num);
//		System.out.println("대문자를 입력하세요");
//		ch = scan.next().charAt(0); // 문자열에 첫번째 문자를 가져옴.
//		char ch2 = (char)(ch+32); //더하는 순간 큰쪽으로 int가 됨. -> 대문자로 치환
//		System.out.println("1-입력한 대문자 : "+ch);
//		System.out.println("1-변환된 문자 : "+ch2);
		
		// 소문자를 입력 받아 대문자로 입력하세요
//		System.out.println("소문자를 입력하세요");
//		ch = scan.next().charAt(0); // 문자열에 첫번째 문자를 가져옴.
//		char ch3 = (char)(ch-32);
//		System.out.println("2-입력한 소문자 : "+ch);
//		System.out.println("2-입력한 대문자 : "+ch3);
//		
//		// 이항연산자
//		int num=10;
//		double num2 = 10;
//		num = num+num2;
//		System.out.println();
		
		
		// 숫자를 입력 받아 짝수인지 홀수인지 출력하시오.
		// 짝수입니다. 홀수입니다.
		// 1. 변수선언 2. 입력 3. 출력.
		
//		int num = 0;
//		Scanner scan = new Scanner(System.in);
//		
//		System.out.println("숫자 입력하셈");
//		num = scan.nextInt();
//		
//		String answer = (num%2==0)?"짝수입니다":"홀수입니다";
//		System.out.println(answer);
//				
//		System.out.println("짝수입니다.");
		
		
		
		
	}

}

 

8. 문제풀이 - charAt

 

package j0509;

import java.util.Scanner;

public class Class0509_09 {

	public static void main(String[] args) {
		//1)		
		//1개의 글자를 입력받아 숫자로 변환하시오.
		//"15784" 첫번째 문자를 숫자로 변환
		// 문자 -> 숫자 -> 첫번째 문자가 짝수 홀수인지 확인
		char ch = ' ';
		Scanner scan = new Scanner(System.in);
		System.out.println("문자열을 입력하세요");
		char input = scan.next().charAt(3); //charAt() 문자열에서 1개의 문자를 가져옴.
//		int result = input-0; //49
		int result = 49-'0'; //char타입의 숫자는 '0'문자 0을 빼야 숫자값으로 변환됨.
		String content = (result%2==0)?"짝수":"홀수";
		System.out.println("추출한 숫자: "+result);
		System.out.println(content);
		
		
	}

}

 

9. 문제풀이 - 형변환해서 특정 자리까지만 출력

 

package j0509;

import java.util.Scanner;

public class Class0509_10 {

	public static void main(String[] args) {
		
		
//		3번
//		실수를 입력받아 7자리까지만 입력받아, 소수점 4자리까지만 출력하시오.
		double pi = 0;
		Scanner scan = new Scanner(System.in);
		System.out.println("7자리까지만 실수를 입력해주세요");
		pi = scan.nextDouble();
		double result = (int)(pi*10000)/10000.0;
		System.out.println("입력한 값 : "+pi);
		System.out.println("실수의 4자리 값 : "+result);
		
		
		
		
//		2번
//		//564.124586 소수점 3자리 절사 2자리까지 존재
//		double pi = 564.124586;
//		double result = (int)(pi*100)/100.0;
//		System.out.println(result);
		
		
		
//		1번
//		double pi = 3.141592;
//		double result = (int)(pi*1000)/1000.0;
//		System.out.println(result);
		
	}

}

 

9-1. 문제풀이 - 형변환해서 특정 자리까지만 출력

 

package j0509;

import java.util.Scanner;

public class Class0509_11 {

	public static void main(String[] args) {
//		소수점 5자리를 입력받아 3자리에서 
		
		
//		2번
//		double pi = 3.7894; 소수점 2자리에서 반올림해서 출력하시오.
//		37.894
		
		double pi = 3.7894;
		double result = Math.round(pi*10)/10.0;
		System.out.println(result);
		
//		1번
//		 소수점 4자리에서 반올림 출력하시오.
//		 1.변수선언 2.출력
//		double pi = 3.141592;
//		double result = (int)(pi*1000)/1000.0;
//		System.out.println(result);
		

	}

}

 

9-2. 문제풀이 - 형변환해서 특정 자리까지만 출력

 

package j0509;

import java.util.Scanner;

public class Class0509_11 {

	public static void main(String[] args) {
//		3번
//		소수점 5자리를 입력받아 3자리에서 반올림해서 출력하시오.
		double num = 0;
		Scanner scan = new Scanner(System.in);
		System.out.println("소수점 5자리 입력 예)1.23456");
		num = scan.nextDouble();
		double result = Math.round(num*100)/100.0;
		System.out.println(result);
		
		
//		2번
//		double pi = 3.7894; 소수점 2자리에서 반올림해서 출력하시오.
//		37.894
		
//		double pi = 3.7894;
//		double result = Math.round(pi*10)/10.0;
//		System.out.println(result);
//		
//		1번
//		 소수점 4자리에서 반올림 출력하시오.
//		 1.변수선언 2.출력
//		double pi = 3.141592;
//		double result = (int)(pi*1000)/1000.0;
//		System.out.println(result);
		

	}

}

 

9-3. 소수점 4자리 올림해서 출력

 

package j0509;

import java.util.Scanner;



public class Class0509_11 {

	public static void main(String[] args) {
//		4번
//		실수를 입력받아 소수점 4자리에서 올림해서 출력하시오
		double pi = 0.0;
		Scanner scan = new Scanner(System.in);
		System.out.println("실수 입력 ㄱ");
		pi = scan.nextDouble();
		double result = Math.round(pi*1000)/1000.0;
		System.out.println(result);
		
		
		
		
		
		
//		3번
//		소수점 5자리를 입력받아 3자리에서 반올림해서 출력하시오.
//		double num = 0;
//		Scanner scan = new Scanner(System.in);
//		System.out.println("소수점 5자리 입력 예)1.23456");
//		num = scan.nextDouble();
//		double result = Math.round(num*100)/100.0;
//		System.out.println(result);
//		
		
//		2번
//		double pi = 3.7894; 소수점 2자리에서 반올림해서 출력하시오.
//		37.894
		
//		double pi = 3.7894;
//		double result = Math.round(pi*10)/10.0;
//		System.out.println(result);
//		
//		1번
//		 소수점 4자리에서 반올림 출력하시오.
//		 1.변수선언 2.출력
//		double pi = 3.141592;
//		double result = (int)(pi*1000)/1000.0;
//		System.out.println(result);
		

	}

}

 

9-3. 소수점 4자리 올림해서 출력

 

package j0509;

import java.util.Scanner;



public class Class0509_12 {

	public static void main(String[] args) {
		
		// 영문 대문인지 소문자인지 비교
		char ch = ' ';
		Scanner scan = new Scanner(System.in);
		System.out.println("문자 입력하쇼");
		ch = scan.next().charAt(0);
		String result = (ch>='a'&&ch<='z')?"영문 소문자입니다.":"영문 대문자입니다.";
		System.out.println(result);

	

	}

}

 

 

5 단축키

1. 단축키

1줄 삭제 : ctrl + d

1줄 이동 : alt + 방향키

 

 

* 핵심

- scanner 활용법

- next 활용법

- charAt(0) : 대소문자 확인

- 삼항 연산자 : 조건문 ?

 

 

 

* 0509 실습 링크

 

 

GitHub - RosePaku/bigdata_java: 빅데이터_자바의_정석

빅데이터_자바의_정석. Contribute to RosePaku/bigdata_java development by creating an account on GitHub.

github.com

 

728x90
반응형
LIST