IT 공부/Java

기본요소, datatype, 연산자

toraa 2022. 6. 22. 20:09

  . 파일명과 클래스명은 일치해야 한다
  . 패키지안에 자바파일을 생성해야 한다
  . 대소문자를 구별해야 한다
    - 클래스는 대문자로 시작
    - 변수는 소문자로 
    - 메소드명은 소문자로 시작하고, 두번째 단어 첫글자는 대문자로
    - 식별자는 키워드 사용 불가
  . java파일은 실행후 컴파일되서 bin폴더속에 class파일로 생성됨
  . 쌍따옴표와 따옴표는 구분됨 - 문자열 " ", 문자' '
  . 자바가 갖는 출력문
   println(): 개행이 된다(줄바꿈) - 줄바꿈용, 일반적 출력
   printf("%s,%c,%d,%f", ("문자열", '가', 100, 3.14) : 개행X - 출력폼을 지정해서 출력
   print()  : 개행X - 문자열을 누적해서 만들 때 주로 사용


public class Print1 {
	public static void main(String[] args) {
		
		System.out.println("환영합니다");
		System.out.println("자바가 참 재밌습니다");
		
		// System: Java에서 제공하는 시스템관련 클래스
		// .(dot): 오른쪽에서 왼쪽으로 접근하는 지정자
		// out : 표준출력을 제공하는 인스턴스 

	}
}
public class Print2 {
	public static void main(String[] args) {
	
		//print
		System.out.println("print-개행이 되지 않음");
		System.out.print("Hello");
		System.out.print("Java! \n"); // \n: 줄바꿈
		
		System.out.println();	//줄바꿈용
		
		//println
		System.out.println("println-개행됨");
		System.out.println("Hello");
		System.out.println("Java!");
	
		//printf
		System.out.printf("printf-개행안됨 \n");
		System.out.printf("%s","Hello \n");
		System.out.printf("%s: %d점 입니다","국어", 99);
		System.out.printf("%s과목의 평균은 %.1f점입니다.","과목",95.4567); //소수점 한자리에서 반올림
		
	}
}
public class Print3 {
	public static void main(String[] args) {
		
		int num1;
		num1 = 10;
		int num2 = 20;
		int result = num1 + num2 ;
		
		System.out.println(num1+"+"+num2+result);
		System.out.println("결과가 맞나요?");
		
		System.out.print(num1+"+"+num2+"="+result+"\n");
		System.out.print("잘보이나요? \n");
		
		System.out.printf("%d+%d=%d\n", num1, num2, result);
		System.out.println("개행이 되었나요?");
		
	}
}

 


Scanner 클래스 : 콘솔로 데이터를 입력받게 처리하는 클래스
- 반드시 close()시켜야 한다.
- 받아들이는 데이터 타입에 따라 해당하는 메소드로 읽어들인다.
  next() - 문자(공백구분), nextInt(), nextFloat(), nextLine() - 문자(라인구분)

 

import java.util.Scanner;

public class Scanner1 {
	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		System.out.println("몇번째 프로그램인가요?");
		
		int num = sc.nextInt();	//nextInt() 정수, nextFloat(), next() 문자, nextLine()한줄읽기, 
		System.out.println(num+ "번째 작성해 보는 Java프로그램입니다.");
		
		sc.close();
	}
}
import java.util.Scanner;

public class Scanner2 {
	public static void main(String[] args) {
		
		System.out.println("자기소개를 해봅시당ㅇㅅㅇ 이름,나이,몸무게를 공백으로 구분해서 입력하세요)");
		Scanner sc = new Scanner(System.in);
		
		String name = sc.next();
		int age = sc.nextInt();
		double weight = sc.nextDouble();
		
		System.out.println(name+"님의 나이는 "+age+"살이고, 몸무게는 "+weight+"kg입니다.");
		
	}
}

 


기본 데이터타입

문자 : char       2바이트 ------- 16 --- 유니코드
                                                  * String - 클래스
논리 : boolean 1비트    ------- true, false
정수 : byte       1바이트 -128 ~ 127
          short       2바이트                               
          int           4바이트(디폴트) -2,147,483,648 ~ 2,147,483,647
          long        8바이트 ~~~L
실수 : float        4바이트 ~~~F
          double     8바이트(디폴트)
 
           int num = 10;   ---->   num = 10

참조 데이터타입
  클래스들, 배열(Array)
  Date now = new Date() ----> now = 주소 --------> Date객체


public class Type1 {
	public static void main(String[] args) {
		
		int num1 = 10;		// 4 2 1 4 2 1
		int num2 = 013;		// 0 0 1 0 1 1 ---> 001011
		int num3 = 0xA;
		
		int num4 = 043;	 //(3) 십진수로?	101 011	---> 101011 =>
		int num5 = 0xA2; //(4) 십진수로?	1010 0010 ---> 10100010 =>
		System.out.println(num1);
		System.out.println(num2);
		System.out.println(num3);
	}
}

10진수 : 0이 아닌 수로 시작한다
2진수 : 0b로 시작한다
8진수 : 0으로 시작한다.
16진수 : 0x로 시작한다


public class Type2 {
	public static void main(String[] args) {
		
		int num1 = 10;
		int num2 = 0b1111;
		int num3 = 010;
		int num4 = 0x1A;
		
		System.out.println("십진수 : "+num1);
		System.out.println("2진수 : "+num2);
		System.out.println("8진수 : "+num3);
		System.out.println("16진수 : "+num4);
	}
}
public class Type3 {
	public static void main(String[] args) {
		
		byte num1 = -128;
		byte num2 = -30;
		byte num3 = 0;
		byte num4 = 30;
		byte num5 = 127;
		byte num6 = 128; //범위를 벗어남
		
	}
}
//char

public class Type4 {
	public static void main(String[] args) {
		
		char c1 = 'A';
		char c2 = 65;
		char c3 = '\u0041'; //유니코드 16진수저장
		
		char c4 = '가';
		char c5 = 44032;
		char c6 = '\uac00';
		
		int unicode = c1;
		
		System.out.println("c1 A= "+c1);
		System.out.println("c2 65= "+c2);
		System.out.println("c3 \u0041="+c3);
		
		System.out.println("c4 가="+c4);
		System.out.println("c5 44032= "+c5);
		System.out.println("c6 \uac00="+c6);
		
		System.out.println("c1의 유니코드값 = "+unicode);
		
		char ch = '\"';	// \" -> ", \', \\ -> \  
		char s1 = '한';
		char s2 = '국';
		char s3 = '韓';
		char s4 = '國';
		char s5 = 'K';
		char s6 = '\u004f';
		char s7 = 'R';
		char s8 = '\u0045';
		char s9 = 'A';
		
		System.out.println("출력결과: "+s1+s2+"("+s3+s4+")"+s5+s6+s7+s8+s9);
	}
}
// long (8바이트)

public class Type5 {
	public static void main(String[] args) {
		
		long num1 = 10;
		long num2 = 20;
		
		long num3 = 10000000000000L; 
	}
}

  실수 - 부동소수점방식으로 저장
 
  . float(4바이트) >>> 끝에 f를 붙여준다    10.1 > 10.1f
  . double(8바이트)

 

public class Type6 {
	public static void main(String[] args) {
		
		float d = 10.1f;  
	}
}
public class Type7 {
	public static void main(String[] args) {
		
		boolean stop = true;
		if(stop) {
			System.out.println("중지합니다.");}
		else {System.out.println("시작합니다.");
		}
		
		boolean b=10>20;
		System.out.println("b의 값: "+b);
		
		boolean a = true;
		boolean c = a;
		System.out.println("c의 값: "+c);
	}
}

변수 선언방법들
자료형 변수명;
자료형 변수명 = 값;
자료형 변수명, 변수명, 변수명,,,;
자료형 변수명=값, 변수명=값,,,

 

public class Type8 {
	public static void main(String[] args) {
		int num1;	//선언부
		num1=10; 	//초기화
		
		int num2 = 10;	//선언부, 초기화 동시
		
		int num3, num4, num5;	//복수 선언
		
		int num6=60; num7=70;	// 복수 선언/초기화
		
		
		int num8, num9=90, num10=100;
		num8=80;
		
		
		System.out.println(num1+num2+num3+num4+num5);
		
		
		//변수의 선언위치 - 사용전 어디서나 무관
		
		int num11 = 90;
		
	}
}

전역변수, 지역변수
; 자바는 지역변수만 있는 것이다. 전역변수는 멤버변수/필드라고 한다.

public class Type9 {
	public static void main(String[] args) {
		
		int outer=1;
		{
			int inner = 2;
			System.out.println("inner= "+inner);
			System.out.println("outer= "+outer);
		}
		//System.out.println("inner= "+inner); //블록밖에서 안쪽의 지역변수 참조불가
		System.out.println("outer= "+outer);
		
	}
}
public class Type10 {
	public static void main(String[] args) {
		
		//성적이 kor 97, math=80, eng=88점이다
		//>>총점 ?점, 평균?점입니다.
		
		//출력은 3가지로 모두 해보세요
		
		float kor = 97;
		float math = 80;
		float eng = 88;
		
		float sub = kor+math+eng;
		//float avg = (sub/3);
		//형변환
		// 정수와 실수를 연산하면 >> 실수
		float avg;
		avg = sub/3.0f;
		
		
		System.out.println("총점은 "+sub+"점 이고, 평균은 "+avg+"점 입니다.");
		System.out.print("총점 "+sub+"점이고, ");
		System.out.print("평균 "+avg+"점 입니다");
		

	}
}

형변환
; 작은 것에서 큰 것으로는 자동형변환이 일어난다 - 자동형변환
short > int > long
int = short, long = int 
; 큰 값이 작은 것으로 갈때는 잘림이 발생하여 자동형변환이 일어나지 않음 - 명시적 형변환
short = (short)int  -> 명시적 형변환

; 정수와 실수를 연산하면 실수     7/3-->2, 7/3.0 -->2.5


public class Type11 {
	public static void main(String[] args) {
		
		int kor = 97;
		int math = 80;
		int eng = 85;
		
		int sum = kor+math+eng;
		
		double avg;
		
		System.out.println("합계는 정수로 %d입니다", sum);
		System.out.println();
		
		avg = sum/3;
		System.out.println("sum/3.0="+avg);
		
		avg = sum/3f;
		System.out.println("sum/3.0f="+avg);
		
		avg = (float)sum/3;
		System.out.println("(float)sum/3="+avg);
		
		avg = sum/(float)3;
		System.out.println("sum/(float)3"+avg);
	}
}
import java.util.Scanner;

public class Type12 {
	public static void main(String[] args) {
		
		//세개의 수를 입력하시오 (정수, 실수, 정수) 
		//입력받은 수의 총 합과 평균을 구하고
		//결과를 출력해 주세요
		System.out.println("세개의 수 정수, 실수, 정수를 입력하세요");
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		float b = sc.nextFloat();
		int c = sc.nextInt();
		
		float sum = (a+b+c);
		float avg = sum/3;
		
		System.out.printf("총 합은 %f이고, 평균은 %.1f입니다.", sum,avg);
	}
}

연산자
; 연산자는 우선순위가 있다.

. 산술연산자 : +, -, *, /, %
. 증감연산자 : ++, --
. 대입연산자 : +=, -=, *=, /=, %/
. 비트연산자 : & | ^
. 시프트연산자: << >> <<< >>>
. 삼항연산자 : 조건식? 참:거짓

 

public class Operator1 {
	public static void main(String[] args) {
		
		//초를 입력받아서 몇시 몇분 몇초로 연산해서 출력한다.
		System.out.println("계산할 시간을 초 단위로 입력해주세요>> ");
		Scanner sc = new Scanner(System.in);
		
		int time;
		int hour, second, minute;
		
		time = sc.nextInt();
		
		second = time % 60;
		minute = (time/60) % 60;
		hour   = (time/60) / 60;
		
		System.out.println("입력받은 초시간은 "+time+"초이고");
		System.out.println(hour+"시간, "+minute+"분, "+second+"초 입니다");
		
		sc.close();
	}
}

관계연산자
; > , < , >= , <= , !=

printf : %d, %f, %c- ' ', %s- " ", %b

 

public class Operator2 {
	public static void main(String[] args) {
		
		boolean result;
		
		System.out.println("두 수를 입력해주세요>> ");
		Scanner sc = new Scanner(System.in);
		
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		
		result = num1 > num2;
		System.out.printf("%d %s %d = %b\n", num1, '>',num2,result);
		
		result = num1 < num2;
		System.out.printf("%d %s %d = %b\n", num1, '<',num2,result);
		
		result = num1 >= num2;
		System.out.printf("%d %s %d = %b\n", num1, ">=",num2,result);
		
		result = num1 <= num2;
		System.out.printf("%d %s %d = %b\n", num1, "<=",num2,result);
		
		result = num1 == num2;
		System.out.printf("%d %s %d = %b\n", num1, "==",num2,result);
		
		result = num1 != num2;
		System.out.printf("%d %s %d = %b\n", num1, "!=",num2,result);
		
		sc.close();
	}
}

 

'IT 공부 > Java' 카테고리의 다른 글

if  (0) 2022.06.23
연산자  (0) 2022.06.23
기초 0611  (0) 2022.06.11
기초2  (1) 2022.06.04
기초1 (자료형, 변수, 연산자)  (0) 2022.05.29