입력 메소드를 이용하려면 Scanner 클래스를 사용해야 되며
이 Scanner 클래스를 이용하기 위해서는 Scanner를 import해야된다.
스캐너 클래스를 메인 메소드나 기타 메소드에서 자동완성을 하면 import가 자동적으로 생성된다.
scanner를 사용할때는 import 여부를 확인하자!
package day03(패키지명);
//스캐너를 자동완성하면 import가 자동생성된다.
import java.util.Scanener;
public class Test(클래스명) {
//메인 메소드 생성
public static void main (String[] args){
//스캐너를 사용하기 위해 자동완성을 이용한다.
Scanner sc = new Scanner(System.in);
}
}
package day03;
import java.util.Scanner;
public class InputTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 바로 옆에다 입력하기 위해서 띄어쓰기를 하지 않았다.
System.out.print("주소를 입력하세요 : ");
// sc.next(); 자체는 값이 될 수 있다.
String address = sc.next();
System.out.println("당신의 주소는 "+address+"이네요!");
}
}
입력결과 :
package day03;
import java.util.Scanner;
public class InputTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름 : ");
String name = sc.next();
System.out.println("주소 : ");
// 아래와 같이 엔터라는 값을 받아낼 nextLine()이 필요하다.
sc.nextLine();
String address = sc.nextLine();
System.out.println("당신의 이름 : "+name);
System.out.println("당신의 주소 : "+address);
}
}
입력 결과 :
package day03;
import java.util.Scanner;
public class InputTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("다음 첫 번째 정수를 입력하세요");
int num1 = sc.nextInt();
System.out.println("다음 두 번재 정수를 입력하세요");
int num2 = sc.nextInt();
System.out.println("당신이 입력한 정수의 합은 "+(num1+num2));
}
}
package day03;
public class Casting {
public static void main(String[] args) {
// 정수와 정수간의 계산은 정수로만 나온다.
System.out.println(10/3);
// char 타입과 정수의 계산은 정수가 나온다. char 타입은 아스키코드로 숫자로 변환
System.out.println('A' + 3);
// 문자열과 연산되는 값들은 문자열로만 나온다.
System.out.println("A" + 3);
// 괄호를 하면 연산자 우선순위로 인하여 정수와 정수가 계산되고 문자열로 출력된다.
System.out.println("A" + (3+4));
// 자동형변환을 이렇게 이용하면 편하다
System.out.println(10 + "" + 3);
// 아스키코드 : 각 문자마다 대응되는 숫자값들을 가지고 있고 그 값을 아스키코드라고 한다.
// 'A' : 65, / 'a': 97 / '0' : 48
System.out.println((char)('A'+3));
// 숫자를 다시 char로 변환 할 수 있다. 이렇게 명시하면 명시적 형변환으로 강제 형변환이다.
System.out.println((char)68);
// 문자열과은 문자열만 출력한다.
System.out.println("10"+"5");
}
}
package day03;
public class NumTest {
public static void main(String[] args) {
// 문자열 타입으로 각각의 숫자를 변수로 선언하였다.
String data1 = "17";
String data2 = "1";
// 담아낼 변수의 타입을 정수로 하여 다음과 같이 메소드를 이용하면 정수로 강제변환 된다.
int num1 = Integer.parseInt(data1);
int num2 = Integer.parseInt(data2);
// 값이 18로 계산되는 것을 알 수 있다.
System.out.println(num1+num2);
}
}
17 << 1 --> 10001 << 1비트 만큼 이동 --> 100010 --> 34
32 16 8 4 2 1
1인 값들만 더하면 해당 10진수가 나온다.
17 >> 1 --> 10001 >> 1비트 만큼 이동 --> 01000 --> 8
16 8 4 2 1
>, < : 초과, 미만
>=, <= : 이상, 이하
== : 같다,
!= : 다르다,
package day03;
public class OperTest {
public static void main(String[] args) {
System.out.println(10>3);
boolean check = true;
System.out.println(!check); // false
System.out.println(check); // true
}
}
조건식들의 관계를 설정해주는 연산자
논리곱(and)
논리합(or)
논리 연산자의 단축평가?
논리 연산자의 논리곱은 둘 중 하나가 false일 경우 false를 리턴하고
둘다 true일 경우 true를 리턴한다.
만약 true값을 가지고 있는 변수 a와 b를 논리곱으로 연산하면 결과는 어떻게 나올까?
a && b 의 결과는 b를 출력한다.
즉 양쪽의 항이 true일때는 우항을 출력하는 것이다.
그럼 논리합 연산자는 어떨까?
논리합은 두쪽 항의 하나라도 ture이면 true를 리턴한다. 둘다 true이면?? a||b 의 결과는 a를 출력한다.
자바의 컴파일러 연산은 a가 true이니 더이상 연산의 필요가 없다고 판단하는 것이다.
마찬가지로 둘중의 값 중 하나가 false이면 true인 값을 리턴한다.
다음은 위 참고사항의 내용을 정의한다.
boolean left = true;
boolean right = true;
System.out.println(left && right); // right의 true;
System.out.println(false && right); // false;
System.out.println(left && false); // fasle;
System.out.println(left || right); // left의 true;
System.out.println(false || right); //right의 true;
System.out.println(left || false); //left의 true;
package day03;
public class OperTest {
public static void main(String[] args) {
boolean check = true;
System.out.println(!check); // false
System.out.println(check); // true
System.out.println((check&&!check)); // false
System.out.println((check&&check)); // true
System.out.println((check||!check)); // true
System.out.println((check||check)); // true
}
}
package day03;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// 두 정수를 문자열을 입력을 받아
// 두 수의 덧셈, 뺄셈, 곱셈, 나눗셈, 결과 출력하기
// 나눗셈의 결과는 소수점 셋째자리까지 출력
// ------입력------
// 첫 번째 정수 : 10
// 두 번째 정수 : 10
// ------결과----
// 덧셈 결과 : 20
// 뺄셈 결과 : -10
// 곱셈 결과 : 200
// 나눗셈 결과 : 1
int input1 = 0;
int input2 = 0;
String line = "------";
Scanner sc = new Scanner(System.in);
System.out.println(line+"입력"+line);
System.out.print("첫 번째 정수 : ");
input1 = Integer.parseInt(sc.next());
System.out.print("두 번째 정수 : ");
input2 = Integer.parseInt(sc.next());
System.out.println(line+"결과"+line);
System.out.println("덧셈 결과 : "+ (input1 + input2));
System.out.println("뺄셈 결과 : " +(input1 - input2));
System.out.println("곱셈 결과 : " + (input1 * input2));
System.out.printf("나눗셈 결과 : %.3f\n" , ((float)(input1)/input2));
}
}