Test016~Test027
System.in.skip(2);
//-- 매개변수(2)에 의해 두 글자를 읽지 않고 건너뛴다.(버린다.)
import java.io.IOException;
public class Test014
{
public static void main(strint[] args) throws IOException
{
//주요 변수 선언
char ch;
int n;
char temp;
//연산 및 처리
System.out.print("한 문자 입력: ");
ch = (char)System.in.read();
System.in.skip(2);
System.out.print("한 자리 정수 입력 : ");
n = System.in.read()
temp = (char)n;
//결과 출력
System.out.println();
System.out.println(">> 입력한 문자 :" + ch);
system.out.println(">> 입력한 정수 : " + temp);
}
}
/* 실행 결과
한 문자 입력 : A
한 자리 정수 입력 : 5
>> 입력한 문자 : A
>> 입력한 정수 : 5
계속하려면 아무 키나 누르십시오 . . .
*/
import java.util.Scanner; //이걸 써워야함!!
public class Test016
{
public static void main(String[] args) //throws IOException 안해도 됨
{
// ○ Scanner 인스턴스 생성
Scanner sc = new Scanner(System.in); //InputStreamReader 쓸 필요없음
String name; //이름
int kor, eng, mat; //국어, 영어, 수학 점수
// ○ 연산 및 처리
System.out.print("이름을 입력하세요 : ");
//br.readLine();
name = sc.next();
System.out.print("국어 점수를 입력하세요 : ");
//kor = Integer.parseInt(br.readLine());
//kor = Integer.parseInt(sc.next());
kor = sc.nextInt();
System.out.print("수학 점수를 입력하세요 : ");
eng = sc.nextInt();
System.out.print("수학 점수를 입력하세요 : ");
mat = sc.nextInt();
// ○ 결과 출력
System.out.println();
System.out.println(">> 이름 : " + name);
System.out.println(">> 총점 : " + (kor + eng + mat)); //(괄호)안하면 908070이런식으로 나옴
}
}
/* 실행 결과
이름을 입력하세요 : 정효진
국어 점수를 입력하세요 : 90
수학 점수를 입력하세요 : 80
수학 점수를 입력하세요 : 70
>> 이름 : 정효진
>> 총점 : 240
계속하려면 아무 키나 누르십시오 . . .
*/
Scanner을 이용해서 char을 입력하기 위해서는
sc.next().char.At(0);하면 된다!
sc.next() 뒤에 charAt(0) 또는 문자열이 많은 경우 char 배열을 생성해 toCharArray()로 받아줘야 한다.
Scanner sc = new Scanner(System.in);
int n1, n2, res=0;
char c;
System.out.print("첫 번째 정수 입력 : ");
n1 = sc.nextInt();
System.out.print("두 번째 정수 입력 : ");
n2 = sc.nextInt();
System.out.print("연산자 입력[+ - * /] : ");
c = sc.next().charAt(0); //check~!!
//정효진,90, 80, 70
//정효진 *90 *80 *70
//정효진 -90 -80 -70
import java.util.Scanner;
public class Test018
{
public static void main(String[] args)
{
// ○ 주요 변수 선언
Scanner sc = new Scanner(System.in);
String name;
int kor, eng, mat, tot;
// ○ 연산 및 처리
System.out.print("이름,국어점수,영어점수,수학점수 입력(,구분) : ");
sc = new Scanner(sc.next()).useDelimiter("\\s*,\\s*");
// 정효진,90,80,70
// Deliter 는 구분자!
// \ns* -> 임의문자열 \s*가 나와야하니까 \\s*입력
name = sc.next();
kor = sc.nextInt();
eng = sc.nextInt();
mat = sc.nextInt();
tot = kor + eng + mat;
// ○ 결과 출력
System.out.println("\n >> 이름 : " + name);
System.out.println(" >> 총점 : " + tot);
}
}
/* 실행 결과 (값 입력할 때 공백있으면 안됨 ,로만 구분!!)
이름, 국어점수, 영어점수, 수학점수 입력(, 구분) : 정효진,80,70,90
>> 이름 : 정효진
>> 총점 : 240
계속하려면 아무 키나 누르십시오 . . .
*/
: 비트 단위 연산자 (&, | ,^, ~)
public class Test021
{
public static void main(String[] args)
{
int a = 10, b = -10;
System.out.printf("~a : %d\n", ~a);
System.out.printf("~b : %d\n", ~b);
}
}
/* 실행 결과
~a : -11
~b : 9
계속하려면 아무 키나 누르십시오 . . .
*/
/*
a = 10 -> 00001010
↓~a
11110101 -> -11 check? -> ok~!!!
+ 00001011 => 11
------------------
00000000 -> 0
b = -10 10 -> 00001010 -> 2의 보수
----------------
1의 보수 + 1
--------
비트열 반전
11110101
1
11110110 -> -10 -> check? -> ok~!!
+ 00001010 -> 10
--------------------
0
*/
public class Test022
{
public static void main(String[] args)
{
// 주요 변수 선언
int a = 13, b = 7;
int c, d, e;
// 연산 및 처리
c = a & b;
d = a | b; //버티컬라인
e = a ^ b;
// 결과 출력
System.out.printf("a & b : %d\n", c);
System.out.printf("a | b : %d\n", d);
System.out.printf("a ^ b : %d\n", e);
}
}
/* 실행 결과
a & b : 5
a | b : 15
a ^ b : 10
계속하려면 아무 키나 누르십시오 . . .
*/
/*
13 -> 00001101
& 7 -> 00000111
-------------
00000101 ->5 둘다 1이면 1
13 -> 00001101
| 7 -> 00000111
-------------
00001111 ->15 하나만 1이어도1
13 -> 00001101
^ 7 -> 00000111
-------------
00001010 ->10 같으면 0 다르면 1
*/
public class Test023
{
public static void main(String[] args)
{
// |
int x = 128; // 00000000 00000000 00000000 10000000
// 00000000 00000000 00000100 00000000
// |
System.out.printf("x << 3 : %d\n", x<<3);
System.out.printf("x * 8 : %d\n", x*8);
// 둘다 1024
// *8 보다 <<를 한 것이 더 빠르게 처리된다.
System.out.printf("x >> 3 : %d\n", x>>3);
System.out.printf("x / 8 : %d\n", x/8);
// 16
// >> -> 비트열 이동 시 빈 자리에 양수면 0, 음수면 1 => 부호 유지
// >>> -> 비트열 이동 시 빈자리에 무조건 0을 채워넣음
System.out.printf("x << 24 : %d\n", x<<24);
//x << 24 : -2147483648 제일 앞에 1이되면 음수가 되고 음수 중에서도 제일 최대값이 됨
// 10000000 00000000 00000000 00000000
// |
System.out.printf("x << 25 : %d\n", x<<25);
System.out.printf("x << 26 : %d\n", x<<26);
System.out.printf("x << 31 : %d\n", x<<31);
// 0 -> 25번째는 다시 맨 맨뒤로감 check~!!
// 00000000 000000000 00000001 이지만 0임 값을 발현 못함 32칸 이동해서 100000000되면 128 발현됨
// ------- 이만큼은 발현안된다는 것! 내자리인 128이 나오기 전까진 계속 카운트만 하고있음
System.out.printf("x << 32 : %d\n", x<<32);
//128
}
}
/* 실행 결과
x << 3 : 1024
x * 8 : 1024
x >> 3 : 16
x / 8 : 16
x << 24 : -2147483648
x << 25 : 0
x << 26 : 0
x << 31 : 0
x << 32 : 128
계속하려면 아무 키나 누르십시오 . . .
*/
public class hyodii024
{
public static void main(String[] args)
{
int a = 20;
int b = 23;
int temp;
System.out.printf("a->%d, b->%d\n", a, b);
a=a^b;
b=b^a;
a=a^b;
System.out.printf("a->%d, b->%d\n", a, b);
temp = a;
a = b;
b = temp;
System.out.printf("a->%d, b->%d\n", a, b);
}
}
/*
a->20, b->23
a->23, b->20
a->20, b->23
계속하려면 아무 키나 누르십시오 . . .
*/
//사용자로부터 임의의 정수를 입력받아
//입력받은 정수가 양수인지, 음수인지, 0인지 구분하여
//이 결과를 출력하는 프로그램을 구현한다.
//단, 입력 데이터는 BufferedReader의 readLine()을 통해 넘겨받을 수 있도록 한다.
//또한, 조건 연산자(삼항연산자)를 활용하여 기능을 구현할 수 있도록 한다.
// 실행예)
// 임의의 정수 입력 : -12
// -12 -> 음수
//계속...
// 임의의 정수 입력 : 257
// 257 -> 양수
//계속...
// 임의의 정수 입력 : 0
// 0 -> 영
//계속...
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class hyodii027
{
public static void main(String[] args) throws IOException
{
int n;
String strResult;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("임의의 정수 입력 : ");
n = Integer.parseInt(br.readLine());
strResult = (n==0 ? "영" : (n>0 ? "양수" : "음수"));
System.out.printf("%d -> %s\n",n,strResult);
}
}
/*
임의의 정수 입력 : 0
0 -> 영
계속하려면 아무 키나 누르십시오 . . .
임의의 정수 입력 : 257
257 -> 양수
계속하려면 아무 키나 누르십시오 . . .
임의의 정수 입력 : -85
-85 -> 음수
계속하려면 아무 키나 누르십시오 . . .
*/
컴파일창 이렇게 드래그해서 엔터치면 복사됨 ~_~