[24.09.05] TIL

yy·2024년 9월 5일

개발일지

목록 보기
94/122

JAVA 공부

char c ='a';
System.out.println("c = " + c);
		
int i = 10;
System.out.println("i = " + i);
		
double d = 10.24;
System.out.println("d = " + d);

boolean b = false;
System.out.println("b = " + b);

String s = "Hello world!";
System.out.println("s = " + s);

// 서식문자
System.out.println("오늘의 기온은 10도 입니다");
System.out.printf("오늘의 기온은 %d도 입니다\n", 10);

int num1 = 20;
System.out.printf("오늘의 기온은 %d도 입니다\n", num1);

//정수
int num2 = 30;
System.out.printf("num2(10진수): %d\n", num2);
System.out.printf("num2(8진수): %o\n", num2);
System.out.printf("num2(16진수): %x\n", num2);

//문자
System.out.printf("소문자 \'%c\'의 대문자는 \'%c\'입니다.\n", 'a', '8');

//문자열
System.out.printf("\'%s\'를(을) 대문자로 바꾸면 \'%s\'입니다.\n", "java", "JAVA");

//실수
float f = 1.23f;
System.out.printf("f - %f\n", f);

double d = 1.2345d;
System.out.printf("d = %f\n", d);

//서식 문자를 이용해서 출력문자의 정렬 및 소수점 제한기능 사용 가능
//서식문자 정렬 기능
System.out.printf("%d\n", 123);
System.out.printf("%d\n", 1234);
System.out.printf("%d\n", 12345);

System.out.println("-----");

// 오른쪽 정렬
System.out.printf("%5d\n", 123);
System.out.printf("%5d\n", 1234);
System.out.printf("%5d\n", 12345);

System.out.println("-----");

//서식문자 소수점제한 기능
System.out.printf("%f\n", 1.23);
System.out.printf("%.0f\n", 1.23);
System.out.printf("%.1f\n", 1.23);
System.out.printf("%.2f\n", 1.23);
System.out.printf("%.3f\n", 1.23);


연산자

피연산자 개수에 따라 단항, 이항, 삼항 연산자로 구분 가능
단항 : +x, 이항 : x = y, 삼항: 조건식: true ? false
1) 대입연산자 : 오른쪽의 결과를 왼쪽에 대입(할당)
2) 산술연산자 : 피연산자를 이용해서 +,-,,/,% 등 수행 int간 '/, %' 의 경우 int형이 값이 나옴
3) 복합 대입연산자: 산술연산자 + 대입연산자. +=, -=,
=, /=, %=
4) 관계연산자 : 두 개의 피연산자를 비교하여 참,거짓 반환
5) 증감연산자 : 1만큼씩 증가, 감소 ++x, --x 전이연산자(++x), 후이연산자(x++)
6) 논리연산자 : 피연산자와 논리곱(&&), 논리합(||), 논리부정(!)을 수행
7) 조건(삼항)연산자 : 조건식 ? 식1 : 식2 (조건식이 true면 식1, false면 식2 반환)
8) 비트연산자 : 데이터를 비트단위로 환상하여 연산을 수행. 다른 연산자보다 속도 향상 ( &: and연산자( a&b: 둘 다 모두 1이면 1), |: or연산자(a|b : 둘 중 하나가 1이면 1), ^: xor연산자(a^b: a와 b가 같지않으면 1))



배열

인덱스를 이용해서 자료형이 같은 데이터를 관리. 배열크기 변경 불가.

// 방법1
int[] arr1 = new int[5]; //배열 선언 단계
arr1[0] = 10; //초기화

// 방법2
int[] arr2 = { 10, 20, 30, 40, 50}; //선언, 초기화
		
//배열을 이용한 학사관리
String[] name = {"박", "이", "정", "류"};
int[] score = new int[5];
Scanner scanner = new Scanner(System.in);
		
System.out.printf("%s의 점수를 입력하시오. :", name[0]);
score[0] = scanner.nextInt();
		
System.out.printf("%s의 점수를 입력하시오. :", name[1]);
score[1] = scanner.nextInt();
		
System.out.printf("%s의 점수를 입력하시오. :", name[2]);
score[2] = scanner.nextInt();
		
System.out.printf("%s의 점수를 입력하시오. :", name[3]);
score[3] = scanner.nextInt();
		
System.out.printf("%s의 점수 : %f\n", name[0], (double)score[0]);
System.out.printf("%s의 점수 : %f\n", name[1], (double)score[1]);
System.out.printf("%s의 점수 : %f\n", name[2], (double)score[2]);
System.out.printf("%s의 점수 : %f\n", name[3], (double)score[3]);


배열과 메모리

배열을 구성하는 데이터의 자료형에 따라 배열의 메모리 크기가 결정됨.
기본 자료형 데이터를 담고있는 변수와 달리 배열변수는 배열 데이터의 주소를 담고있음.
배열 길이 : arr.length
배열 요소 출력 : System.out.println("arr1" : Arrays.toString(arr1));
배열 요소 복사 : arr2 = Arrays.copyOf(arr1, arr1.length); (주소값 복사가 아닌 요소복사임)
배열 레퍼런스(메모리 주소) : System.out.println("arr1" : arr1);
배열 주소 복사 : arr3 = arr1;



조건문

양자택일 -> if문, 다자택일 -> switch문
if : js와 동일

int num1 = 10;
int num2 = 20;
		
if(num1 < num2) {
	System.out.println("num1은 num2보다 작다");
} else if(num1 > num2) {
	System.out.println("num1은 num2보다 크다");			
} else {
	System.out.println("num1은 num2와 같다");						
}
		
//switch문
System.out.print("점수를 입력하세요: ");
Scanner inputNum = new Scanner(System.in);
int score = inputNum.nextInt();
		
switch(score) {
	case 100:
	case 90:
		System.out.println("수");
		break;
	case 80:
		System.out.println("우");
		break;
	case 70:
		System.out.println("미");
		break;
	default:
		System.out.println("try again");
		break;
}
		inputNum.close();


반복문 for, while

// for문
System.out.print("INPUT NUMBER : ");
Scanner scanner = new Scanner(System.in);
int inputNum = scanner.nextInt();
		
for (int i = 1; i < 10; i++) {
System.out.printf("%d * %d = %d\n", inputNum, i, (inputNum * i));
}
		
// while문
System.out.print("INPUT NUMBER : ");
int num = scanner.nextInt();
int i = 1;
while (i < 10) {
System.out.printf("%d * %d = %d\n", num, i, (num * i));
i++;
}
		
// do ~ while문
// 최초 한번은 꼭 실행함. 그 후 while문 조건식 확인 후 진행.
do {
System.out.println("무조건 1번은 실행합니다.");
} while (false);
profile
시간이 걸릴 뿐 내가 못할 건 없다.

0개의 댓글