290570
05.09 프로그래밍 본문
\n : 줄바꿈
\t : tab만큼 간격 띄움
a.equals(b)
a는 b와 같다 / 서로 같으면 true, 그렇지 않으면 false 의 결과가 됨
(관련 참고 블로그 : a.equals(b) 와 a == b의 차이
https://velog.io/@kms0211/JAVA-equals.-%EC%99%80-A-B%EC%9D%98-%EC%B0%A8%EC%9D%B4)
#비트 연산자
& 비트곱 ==> 두 개의 비트상태가 모두 1일때 결과가 1이 된다
| 비트합 ==> 두 개의 비트상태 중에 하나만 1이어도 결과가 1이 된다
^ 비트차 ==> 두 개의 비트상태가 서로 다를때 결과가 1이 된다
X Y & | ^
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
#비트 이동연산자
<< 비트를 왼쪽으로 이동시키는 연산자 (*2)
>> 비트를 오른쪽으로 이동시키는 연산자 (/2)
# short cut operation (short circuit operation)
if(조건1 && 조건2)
==> 만약 조건1이 거짓이라면 조건2를 판별하지 않음
|| 와 | 의 차이
if (조건1 || 조건2)
==> 만약 조건1이 참이라면 조건2를 판별하지 않음
#삼항연산자 (조건식연산자)
(항1) ?항2:항3
항1에는 조건식이 오고, 만약 그 조건식이 참이라면 항2를 수행 / 거짓이라면 항3을 수행
# 제어문 : 문장(명령어)의 흐름을 제어시키는 명령(문장)
선택문 - if, switch
반복문 - for, while, do-while
기타 - break, continue
#if
if ( 조건식 ) {
참일때 동작시킬 명령어들
} else {
거짓일때 동작시킬 명령어들
}
==> 동작시킬 명령어가 한개밖에 없으면 중괄호{} 생략 가능
#비밀번호 일치 확인
//a.equals(b) 사용해서 비밀번호와 비밀번호 확인이 같은지
import java.util.Scanner;
class D06CheckPassword {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String password, checkPassword, result="false";
System.out.print("비밀번호? ==>");
password = sc.next();
System.out.print("비밀번호 한번 더? ==>");
checkPassword = sc.next();
if(password.equals(checkPassword)){
result="true";
}
System.out.print(result);
}
}
*주의 : " == " 사용 시 같은걸 입력해도 일치하지 않는다고 나옴
*String은 equals 사용해야함 / == 사용불가
#비밀번호 일치 확인2
//사용자한테 암호와 암호확인을 입력받아 서로 일치하는지, 8자 이상인지 판별하는 프로그램 (암호는 문자열)
import java.util.Scanner;
class D07CheckPassword {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String password, checkPassword, result="비밀번호 맞는지 확인하세요, 비밀번호는 8글자 이상입니다";
System.out.print("비밀번호? ==>");
password = sc.next();
System.out.print("비밀번호 한번 더? ==>");
checkPassword = sc.next();
if(password.equals(checkPassword) && password.length() >= 8 ){
result="비밀번호가 일치합니다";
}
System.out.print(result);
}
}
#결과
#비트연산자
class D08Bit {
public static void main(String[] args) {
int a = 3;
int b = 7;
int i = a & b;
int j = a | b;
int k = a ^ b;
System.out.println("i:"+i);
System.out.println("j:"+j);
System.out.println("k:"+k);
}
}
자바 개발자가 잘 쓰지 않지만, 기본 지식으로 알고있어야한다고 하심,,
#변수 값 맞바꾸기
class D09Swap {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.println("두 변수의 초기값");
System.out.println("a:"+a);
System.out.println("b:"+b);
//두변수의 내용 맞바꾸기
//코드 추가하기
int temp;
temp = a;
a = b;
b = temp;
System.out.println("두 변수의 값 변경 후");
System.out.println("a:"+a);
System.out.println("b:"+b);
}
}
임시 변수 필요 (빈 자리에 넣기)
#비트 차 이용해서 자리 바꾸기
/*
비트 차 연산자를 사용하면 임시변수 없이 두 변수의 값 맞바꿀 수 있음
1) a와 b를 비트차 연산하여 a에 저장
2) a와 b를 비트차 연산하여 b에 저장
3) a와 b를 비트차 연산하여 a에 저장
*/
class D10SwapBit {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.println("두 변수의 초기값");
System.out.println("a:"+a);
System.out.println("b:"+b);
a = a^b;
b = a^b;
a = a^b;
System.out.println("두 변수의 값 변경 후");
System.out.println("a:"+a);
System.out.println("b:"+b);
}
}
class D14BitLogical{
public static void main(String[] args){
int age1 = 28;
int age2 = 29;
if(++age1 >= 30 && ++age2 >=30){
System.out.println("두 사람 모두 내년에는 30대 입니다.");
}else{
System.out.println("두 사람 모두 내년에는 30대가 아닐 수 있습니다.");
}
System.out.println(age1); //29
System.out.println(age2); //29
}
}
++age1 을 판단했을때 false 이기때문에, ++age2 는 보지 않음 => age2는 출력해도 원래 숫자로 나옴
&& 는 하나만 틀려도 다 틀렸기때문에 그렇고, || 사용 시 앞이 틀려도 뒤도 판단함
#삼항연산자 (조건식 연산자)
/*
두 개의 정수를 입력받아, 그 중에 큰 수를 출력 (조건식연산자 이용)
*/
import java.util.Scanner;
class D17Condition{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a, b, max;
System.out.print("숫자 하나 입력하세요 :");
a = sc.nextInt();
System.out.print("숫자 하나 더 입력하세요 :");
b = sc.nextInt();
max = (a>b)?a:b;
System.out.printf("큰 수는 %d", max);
}
}
//사용자한테 임의의 수 N을 입력받아 그 수가 양수(0포함)이면 그 수를 그대로 출력,
//음수이면 제곱하여 출력
import java.util.Scanner;
class D20If{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N;
System.out.print("숫자 하나 입력하세요 :");
N = sc.nextInt();
if(N>=0){
System.out.println(N);
} else {
System.out.println(N*N);
}
}
}
import java.util.Scanner;
class D20If{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N;
System.out.print("숫자 하나 입력하세요 :");
N = sc.nextInt();
if (N<0){
N = N*N;
}
System.out.printf("결과 :"+N);
}
}
//0~9 사이 숫자 입력받아서 한글 표기식으로 출력 (if문 사용)
import java.util.Scanner;
class D25Kor{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num;
String result="0~9 사이 숫자만 입력가능";
System.out.print("0~9 사이 숫자를 입력하세요 :");
num = sc.nextInt();
if(num == 0){
result = "영";
}else if (num == 1){
result = "일";
}else if (num == 2){
result = "이";
}else if (num == 3){
result = "삼";
}else if (num == 4){
result = "사";
}else if (num == 5){
result = "오";
}else if (num == 6){
result = "육";
}else if (num == 7){
result = "칠";
}else if (num == 8){
result = "팔";
}else if (num == 9){
result = "구";
}
System.out.printf("결과: %s\n",result);
}
}
'java_spring (2024.05 ~ 2024.10)' 카테고리의 다른 글
05.09 부동소수점 오류 (0) | 2024.05.09 |
---|---|
05.09 숫자 한글로 변환 (0) | 2024.05.09 |
05.09 논리 연산자 (0) | 2024.05.09 |
24.05.09 (0) | 2024.05.09 |
05.08 printf (0) | 2024.05.08 |