[ 목차 ]
# 형변환
- 자동 형변환
정수 + 실수 = 실수 -> 1+0.2=1.2 // 10/3.0 = 3.33333333333
정수 + 정수 = 정수 -> 10 / 3 = 3
- 강제 형변환 : (자료형)/값
(double)11/9 = 11.0/9
(char)('A' + 1 ) -> B
System.out.println(number1/(double)number2);
//(double)number2 -> 강제형변환
// ctrl + M : 전체 화면으로
// ctrl + shift + o : 임포트(import - 불러오다) 자동완성
1. 다른 자료형을 문자열로 문자열과 다른 자료형을 연결하면 결과는 항상 문자열이 된다.
2. 문자열을 다른 자료형으로 일반 자료형은 일반 자료형끼리 형변환이 되고, 클래스 타입은 클래스 타입끼리 형변환이 된다. 따라서 문자열을 정수, 실수로 변형하기 위해서는 Integer, Double 클래스의 메소드를 사용해야 한다.
- Integer.parseInt("2");
- Double.parseFouble("3.0");
- 함수(클래스 밖에서 만든다) - 어떤 기능을하는 것 // 이름 뒤에 ()가 있다.
- 메소드(클래스 안에서 만든다) - 함수와 같다. 자바에서 모든 함수는 클래스 내부에 만들어지므로 메소드라고 말한다.
package day03;
public class Casting {
public static void main(String[] args) {
// System.out.println((int)3.7); // 3
// System.out.println((double)1); // 1.0
// System.out.println((char)97); // a
int num1 = 10, num2 = 20;
String number1 = "10", number2 = "20";
System.out.println(num1 + num2);
System.out.println(number1 + number2);
// 문자열을 연산을 하면 연산이 아닌 연결이된다. 그러므로 1020 이 연결된것이다.
System.out.println(3+2+"3"+5); //(3+2)(연산)3(연결)5(연결)
System.out.println(3+(2+"3")+5); //(()) 소 괄호 안에 괄호는 최 우선 연산자
System.out.println("제 나이는 "+ num1+ "살 입니다.");
System.out.println(Integer.parseInt(number1) + 20);
//System.out.println((int)number1 + 20); 불가능 오류발생
System.out.println(Double.parseDouble("3.0")+0.5);
}
}
package day03;
import java.util.Scanner;
public class InputTest1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(sc.next());
//sc.next();// sc안에 있는 넥스트 메시지
}
}
# 입력 클래스
- Scanner sc = new Scanner(System.in);
- next() : 입력 받은 값을 String 타입으로 돌려준다.
업력한 값을 띄어쓰기, 엔터로 구분하고 분리한다.
- nextLine() : 입력 받은 값을 String 타입으로 돌려준다.
띄어쓰기, 엔터도 값으로 입력된다. 한 줄 전체를 입력받는다.
- nextInt() : 입력받은 값을 int 타입으로 돌려준다.
- nextDouble() : 입력받은 값을 double타입으로 돌려준다.
package day03;
import java.util.Scanner;
public class InputTask1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력하세요 : ");
System.out.printf("%s"+"님 안녕하세요",sc.next());
}
}
package day03;
import java.util.Scanner;
public class InputTask2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next(); //메소드도 하나의 값으로 볼 줄 알아야한다
//String str = ㅎㅇ; ㅎㅇ는 입력값 와 동일하다 즉 메소드 값 입력 값도 변수로 보자
System.out.println(str);
System.out.println(str);
System.out.println(str);
}
}
package day03;
import java.util.Scanner;
public class InputTask02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력해 주세요 : ");
String name = sc.nextLine();
System.out.printf("%s" + "님 안녕하세요\n", name);
System.out.printf("%s" + "님 안녕히가세요\n", name);
System.out.println(name + "님 안녕하세요");
System.out.println(name + "님 안녕히가세요");
}
}
package day03;
import java.util.Scanner;
public class InputTask3 {
public static void main(String[] args) {
/* 두 정수를 입력받고 합을 출력한다.
* next() 사용
* String -> int
*
* 1. 변수 2개를 선언한다.
* 2. 메시지를 출력한다.
* 3. 입력메소드를 사용해서 변수 1에 값을 저장한다.
* 4. 메시지를 출력한다.
* 5. 입력메소드를 사용해서 변수 2에 값을 저장한다.
* 6. 두 변수를 덧셈해서 츨력한다.
*/
// 기본값
//int = 0
//double : 0.0
//char : ' '
//String : "", null
//boolean : false
Scanner sc = new Scanner(System.in);
String num1 = "", num2 = null;
String msg1 = "정수 1 입력 : ",msg2 = "정수 2 입력 : ";
int number1 =0, number2=0, result =0;
// System.out.print(msg1);
// num1 = sc.next();
// System.out.print(msg2);
// num2 = sc.next();
// System.out.println("두 정수의 합은"+(Integer.parseInt(num1)+ Integer.parseInt(num2) )+"입니다." );
// 문자열과 정수의 합이여서 문자열이 출력되어 최 우선 연산자를 실시 해야한다.
System.out.print(msg1);
number1 = Integer.parseInt(sc.next());// 문자열 형을 정수형으로 사전에 해결해 주고 처리한다.
System.out.print(msg2);
number2 = Integer.parseInt(sc.next());
result = number1 + number2;
System.out.println("두 정수의 합은 "+result+"입니다.");
}
}
package day03;
import java.util.Scanner;
public class InputTest1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(sc.next());
//sc.next();// sc안에 있는 넥스트 메시지
}
}
package day03;
import java.util.Scanner;
public class InputTest3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String msg1 = "좋아하는 숫자 : ", msg2 = "좋아하는 동물 : ", animal = null;
String reultMsg = "내가 좋아하는 숫자는 %d이고 내가 좋아하는 동물은 %s이다.";
int number = 0;
System.out.println(msg1);
number = sc.nextInt();
sc.nextLine();// 다음줄 무시 함으로 다음 줄에는 꼭 쓰자. 엔터가 들어있기 때문에 int, double, next 에서
System.out.println(msg2);
animal = sc.nextLine();
System.out.printf(reultMsg,number, animal);
}
}
# 연산자
- 기능이 있는 특수문자
- 연산자의 우선순위 - 하나의 수식에 여러 개의 연산자를 사용하면 어떤 연산이 먼저되는 지를 구분한다.
- 최 - 최우선 연산자 ()
- 단 - 단항 연산자
- 산 - 산술 연산자 +,-
- 쉬 - 쉬프트 연산자
- 관 - 관계 연산자
- 리 - 논리 연산자
- 삼 - 삼항 연산자
- 대 - 대입 연산자
- 결합성 - 하나의 수식에 동일한 연산자가 여러개 사용되면 알맞은 방향으로 결합되는 연산의 성질
- 산술 연산자
- + - String : 연결//int, double : 연산
- - - String : 사용불가
- * - String : 사용불가
- / - String : 사용불가//int/int -> int(몫)//0으로 나눌 수 없다.
- % - 나머지 연산자//10%3 -> 1
package day03;
import java.util.Scanner;
/*
* 두 자리 수 정수를 입력 받고 십의 자리,
* 일의 자리를 출력하는 프로그램 만들기
*
* 1. 변수 3개를 선언한다 int
* 2. 출력한다.(두 자릿수를 입력하세요 : )
* 3. 입력받아서 저장한다.
* 4. 연산한다.
* 4-1. 십의 자리를 구할려면 나누기(/) 10을 사용하면 나온다.
* 4-2. 일의 자리를 구할려면 나머지(%) 10을 사용하면 나온다.
* 5. 결과를 출력한다.(십의 자리는 ~이고, 일의 자리는 ~이다.)
*/
public class InpuyTest4 {
public static void main(String[] args) {
int number = 0 , result1 = 0, result2 = 0; // 노란줄 : 만들고 안써서 나오는 것이다.
Scanner sc = new Scanner(System.in);
String msg = "두 자릿수 정수를 입력하세요 : ";
System.out.print(msg);
number = sc.nextInt();
result1 = number/10;
result2 = number%10;
System.out.println("십의 자리는 "+ result1+"이고, 일의 자리는 " + result2+"입니다.");
}
}
package day03;
import java.util.Scanner;
public class InputTest5 {
public static void main(String[] args) {
int number =0;
String msg = "정수를 입력해주세여 : ";
Scanner sc = new Scanner(System.in);
System.out.println(msg);
number = sc.nextInt();
}
}
'Java > Java 학원 복습' 카테고리의 다른 글
자바 배열 실습문제, 메소드 (1) | 2022.10.03 |
---|---|
자바 학원 필기 5 (0) | 2022.10.03 |
자바 학원 필기 4 (1) | 2022.10.03 |
자바 학원 필기 2 (0) | 2022.10.03 |
자바 학원 필기 1 (0) | 2022.10.03 |