Java 학습 & 복습 1일차

728x90
//print는 띄어쓰기 안하고 println은 다음 문장과 자동으로 띄어쓰기
		System.out.println("Hello World");
		System.out.print("Hello");
		System.out.println("World");
//사칙연산은 ""없이 숫자쓰면 가능
		System.out.println(1+1);
		System.out.println(2-5);
		System.out.println(3*3);
		System.out.println(3/2); //정수로만 나눗셈 가능 

// variables 변수
		int x; //int에 x라는 변수 지정
		x=3;  // x는 3이라는 변수 지정
		int z = 5; // 한줄로 변형 가능
		System.out.println(x+3);
		
		int y= 3;
		System.out.println(z+y);
		
//정수의 종류
		//
		float a = 1.111111111f; // 7자리까지만 출력 + 끝에 항상 f를 붙여줘야됨
		double b = 1.1312313; // 15자리까지 출력
		long c = 21000000000L; // 20억이 넘을때는 long으로 대체 - 메모리값 세이빙 목적 + 끝에 L을 붙일 것
		char d = 's'; // ''작은 따옴표만 가능 + 한자리 String만 가능
		String f = "여러문자 대입 가능한 타입";
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(f);
	
		
//상수 (constant) 변하지 않는 값 sort나 tuple로 이해하면 됨
		final int MAX_A = 33; // constant value는 final 붙이고 전부 대문자와 _로 적는게 관례
//리터럴(literal)의 의미는 그 자체의 값이란 뜻으로 본래 상수의 의미와 같음, 다만 상수가 constant로 쓰여서 의미의 혼동을 막기위해 literal 사용
		
		String name = "Ja" + "va";
		String str  = name + 8.0;
		System.out.println(str); //문자열의 결합
		
//변수의 값 바꾸기
		int X = 20, Y= 40; // 한줄로 묶기 가능
		int tem = X; //값을 서로 바꾸기위해 빈 variable 생성 후
		X=Y;
		Y=tem; //X값을 다시 Y에 대입해주면 값 서로 바꾸기 완성
		System.out.println(X);
		System.out.println(Y);
		
//printf 사용하기
		int age=28;
		long year=111111111111L;
		System.out.printf("age=%d, year=%d%n", age, year); // %n을 붙임으로써 띄어쓰기 표헌
		//%d는 10진수, %x는 16진수, %f는 부동 소수점, %c는 1 문자, %s는 문자열
		String ss = "이종호";
		char sss = '남';
		float ff = 3.111f;
		System.out.printf("이름:%s, 성별:%c, 기타:%f%n",ss, sss, ff);
		
		//f에서 e3의 의미는 3자리 우측 이동? 즉,
		float f1 = 3.10e3f; // = 3100
		System.out.println(f1);
		//값을 간략하게 표한할 때는 %g, 지수형태로 표현 시 %e
		float f2 = 1.34e1f;
		System.out.printf("지수형태:%e, 간략형태:%g%n",f2,f2);
		double dd = 1.23456789;
		System.out.printf("%14.10f%n",dd); // 전체 14자리 소숫점중에 10자리의 소수점 출력의미
		String url = "www.naver.com";
		System.out.printf("[%s]%n",url); //문자열의 출력 길이만큼 출력공간을 확보
		System.out.printf("[%.9s]%n",url); //왼쪽부터 9자리 출력 의미, []는 그냥 같이 출력하라고 써놓은거
		System.out.printf("[%20s]%n",url); // 우측정렬 - 총 20자리의 자릴 확보
		System.out.printf("[%-20s]%n",url); // 좌측정렬 - 좌측방향으로 총 20자리를 확보
        
        

		 Scanner scanner = new Scanner(System.in); // scanner 변수에 system.in을 추가해서 입력가능하게 만듬

		 System.out.println("아무 정수 입력");

		 String input = scanner.nextLine(); //input이라는 변수에 scanner.nextLine() //을 추가해서 입력받은 내용을 nextLine함수 사용하여 저장 int num = Integer.parseInt(input); 
		 * Integer.parseInt(input) 사용해서 //입력받은 s를 int로 변환
		 * 
		 * System.out.println("입력 정수: " + input);System.out.printf("Number: %s%n",num);
		 */

// 10진수한계 (9999)와 2진수한계 (1111)에 1을 더하면 10000이 되기 때문에 오류가 나는 것이 아닌 맨 앞의 1이 버려지고 0000만 남음
// = 오버플로우(overflow)가 걸림. 따라서 오버플로우가 발생하지 않게 충분한 크기의 타입을 선택해서 사용해야함
		// 아래의 예시 참조
		short sMax = 32767, sMin = -32768;
		char cMin = 0, cMax = 65535;
		System.out.println((short) ++sMax); // =-32768 = 2byte를 표현하기위해 short 사용
		System.out.println((short) (sMin - 3)); // =32767 ++ or -- 쓰거나 ()한개 더 쳐서 +-1 수기 입력 가능
		System.out.println((int) --cMin); // 4byte 표현하기 위해 int 사용
		System.out.println((int) ++cMax);

		// 연습문제 = x=2, y=3, z=1로 값을 서로 바꾸기
		int x = 1, y = 2, z = 3;
		int tem = x;
		x = y;
		y = z;
		z = tem;
		System.out.println("x=" + x);
		System.out.println("y=" + y);
		System.out.println("z=" + z);
728x90