성공은 우연이 아니다. 노력, 인내, 배움, 공부, 희생, 그리고 무엇보다 자신이 하고 있는 일에 대한 사랑, 하는 법을 배우는 것이다.
- 형변환
서로 다른 타입간에 연산을 수행 할 경우
수행전에 타입을 맞추어 주는 행위 → 하나의 자료형으로 통일
묵시적 형변환 → 컴파일러가 수행
작은 타입에서 큰 타입 갈 때
byte b = 10;
int i = b;
명시적 형변환 → 개발자가 수행
큰타입에서 작은 타입으로
int j = 12345;
short s = (short)j;
public class TypeTest {
public static void main(String[] args) {
int intVal = 10;
double doubleVal = intVal;
System.out.println(doubleVal);
double doubleVal2 = 10.99;
int intVal2 = (int)doubleVal2;
System.out.println(intVal2);
int bigNum = 1000000;
byte smallNum = (byte)bigNum;
System.out.println(smallNum);
// 크기가 큰 형태로 자동 변환됨
double dNum = 1.2;
float fNum = 0.9F;
float fSum = (float)(dNum + fNum);
}
}
- 연산자들
* 단항 연산자
!, ++, --
!true -> false
++ : 피연산자의 값을 1증가 (후위/전위 증가)
-- : 피연산자의 값을 1감소 (후위/전위 감소)
* 이항 연산자
산술 연산자 : +, =, *, /, %
비교 연산자 : >, <, >= , =<, !=, ==
* 3항 연산자
조건항 ? 항1 : 항2
ex)
int a = 10, int b = 20
a > b ? a : b
* 대입 연산자
int a = 10;
* 복합 연산자
+=, *=, /=, %=, -=
public class LogicalTest {
public static void main(String[] args) {
//입력 장치를 값들을 가져오기 위한 util class
Scanner scanner = new Scanner(System.in);
System.out.println("정수하나를 입력하세요. : ");
var num = scanner.nextInt();
// String result1;
// if (num > 0){
// result1 = "양수";
// }else if(num == 0){
// result1 = "0";
// }else{
// result1 = "음수";
// }
// System.out.println(result1);
// 3항 연산자
String result1 = (num>0)? "양수" : (num==0)?"0" : "양수아님";
System.out.println(result1);
}
}
▶ 문제 1. 세 자리 수 정수를 입력받아 각 자리수 숫자의 총합을 구하시오.
public class IntegerSum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("3자리 정수를 입력하세요 : ");
int num = sc.nextInt();
int a = num / 100;
int b = (num - (100*a)) /10;
int c = num - 100*a -10*b;
int sum = a+b+c;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(sum);
}
}
→ 논리 연산자를 사용시 제일 처음 조건식에 좀 더 집중해야한다.
int num1 = 0;
int i = 0;
//둘 다 true일 때만 true가 된다
boolean value =((num1 += 10) < 10 && ((i += 2) < 10));
//논리연산자의 첫번째 조건이 false 이기에 두번째 조건이 실행되지 않는다
num1 = 10, i = 0, value = False
boolean value =((num1 += 10) < 10 || ((i += 2) < 10));
//num1, i의 값은 얼마인가?
num1 = 10 ,i = 2, value = True
- 조건식
조건에 따른 명령을 수행
▶ 문제 2. 사용자로 부터 키와 몸무게를 입력받고 BMI를 계산하여 저체중, 정상, 과체중, 비만을 판별해보자
public class CTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("키와 몸무게를 공백으로 구분하여 입력하세요: ");
String input = sc.nextLine();
String[] numbers = input.split(" ");
double height = Integer.parseInt(numbers[0])*0.01;
double weight = Integer.parseInt(numbers[1]);
System.out.println("height = "+height+"m");
System.out.println("weight = "+weight);
double obesity = weight /(height*height) ;
System.out.println(obesity);
if (obesity < 18.5){
System.out.println("저체중");
}else if (obesity > 18.5 && obesity < 25){
System.out.println("정상");
} else if (obesity > 25 && obesity < 30) {
System.out.println("과체중");
} else{
System.out.println("비만");
}
}
}
▶ 문제 3. 사용자로 부터 년도를 입력받고 그 해가 윤년인지 아닌지 판별해보자
public class FeburaryTest {
public static void main(String[] args) {
System.out.print("해당 년도를 입력해주세요 : ");
int years = new Scanner(System.in).nextInt();
if (years % 4==0 || years % 100 ==0 || years % 400 == 0) {
System.out.println("윤년 2월달에 29일이 있습니다");
}else{
System.out.println("윤년이 아닙니다 2월달에 28일까지 있습니다");
}
}
}
'Java 기초' 카테고리의 다른 글
Java 기초 (4. Overload vs Override) (2) | 2024.03.12 |
---|---|
Java 기초 (연습하기-1) (0) | 2024.03.12 |
Java 기초 (3. Switch문, While문) (0) | 2024.02.29 |
Java 기초 (1. 메모리와 데이터 타입) (2) | 2024.02.27 |
Java 개론 (0) | 2024.02.26 |