일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- sqld remame
- java 성별
- java Fish
- SQLD 특강
- java 상속
- sqld 자격증
- sqld 옵티마이져
- java 함수
- Java 메소드
- java 로또
- java string
- JAVA 연산자
- PLSQL
- java 단축키
- SQL
- Java Cat
- sqld deny
- java 논리연산자
- sqld revoke
- SQLD 자격시험 개념정리
- java Animal
- sqld trigger
- SQLD 옵티마이저
- JAVA for문
- java
- SQLD 핵심포인트
- JAVA 제어문
- java 구구단
- java spider
- sqld grant
- Today
- Total
SQLD, ECLIPS, JAVA,PYTHON, NODE....
[Eclips] Java class 2 - 논리연산자, 대입연산자, 논리시프트, 구구단, 짝수단, 배열, 로또, 동치연산자(가위바위보) 본문
[Eclips] Java class 2 - 논리연산자, 대입연산자, 논리시프트, 구구단, 짝수단, 배열, 로또, 동치연산자(가위바위보)
D_Aiden 2023. 12. 8. 09:072023.12.8
## 논리연산자
값1, 값2 주어졌을때의 논리연산자 회로는 아래와 같음.
값1 | 값2 |
false | false |
false | true |
true | false |
true | true |
논리연산자 답안
AND(&&) | OR(||) | XOR(^) | 값 | NOT(!) |
false | false | false | ||
false | true | true | false | true |
false | true | true | true | false |
true | true | false |
## 대입연산자 축약
: 대입연산자는 오른쪽 피연산자의 연산결과를 왼쪽 변수에 대입하는 연산자.
일반표현 | 축약표현 |
a = a+b | a += b |
a = a-b | a -= b |
a = a*b | a *= b |
a = a/b | a /= b |
a = a&b | a &= b |
a = a|b | a |= b |
a = a>>b | a >>= b |
a = a<<b | a << = b |
a = a>>>b | a >>>= b |
## 연산자 구분(등가비교연산자, 대입연산자)
등가비교연산자(==)는 두 값이 동일한지 참 or 거짓을 반환하는 연산자
대입연산자(=)는 오른쪽 값을 왼쪽에 대입하는 연산자
※ 논리시프트
<<< 숫자 , >>> 숫자는 숫자만큼 좌측으로 이동하라는 연산자
![](https://blog.kakaocdn.net/dn/QbxBF/btsBC5qd5Oz/PyKwVRCVhDA3KLi828eyI0/img.png)
(연습1) 구구단 입력(숫자의 증가치 연습)
Step1. 키보드 입력을 선언해서 코딩
Step2. 키보드에 입력할 질문을 작성해 키보드로 입력.
Step3. 키보드를 불러온 변수를 int(32byte)의 변수로 선언.
for문 구성 ==> for( 변수의 시작을 선언; 변수의 조건; 변수의 증감) 형태
ex) for( a=1; a<10; a++);
//단을 하나 입력받아 그 단을 출력
Scanner scan = new Scanner(System.in); //키보드 선언
System.out.print("단을 입력하세요: "); // 키보드에 입력할 질문
int dan=scan.nextInt(); // scan을 dan이라는 변수선언
for(int h=1; h<10; h++) {
System.out.println(dan +"X" +h +"=" +(dan*h));
}
(연습2) 구구단을 출력하시오.
Step. for문으로 코딩
Step. for문 + for문으로 구성해서 구구단 앞자리를 코딩
Step. 마지막 for문에서 출력문을 코딩
for (int g=2; g<10; g++) {
System.out.println("======구분선======");
for(int a=1; a<10; a++) {
System.out.println(g +"x" +a +"=" + (g*a));
}
}
======구분선======
2x1=2
2x2=4
2x3=6
2x4=8
2x5=10
2x6=12
2x7=14
2x8=16
2x9=18
======구분선======
3x1=3
3x2=6
3x3=9
3x4=12
3x5=15
3x6=18
3x7=21
3x8=24
3x9=27
======구분선======
4x1=4
4x2=8
4x3=12
4x4=16
4x5=20
4x6=24
4x7=28
4x8=32
4x9=36
======구분선======
5x1=5
5x2=10
5x3=15
5x4=20
5x5=25
5x6=30
5x7=35
5x8=40
5x9=45
======구분선======
6x1=6
6x2=12
6x3=18
6x4=24
6x5=30
6x6=36
6x7=42
6x8=48
6x9=54
======구분선======
7x1=7
7x2=14
7x3=21
7x4=28
7x5=35
7x6=42
7x7=49
7x8=56
7x9=63
======구분선======
8x1=8
8x2=16
8x3=24
8x4=32
8x5=40
8x6=48
8x7=56
8x8=64
8x9=72
======구분선======
9x1=9
9x2=18
9x3=27
9x4=36
9x5=45
9x6=54
9x7=63
9x8=72
9x9=81
코드 정리하는 단축키: ctrl + i
(연습3) 짝수단을 출력하시오.
// 짝수단을 출력하시오.
for (int g=2; g<10; g+=2) { // 증가치가 2배수씩 되도록 코딩
System.out.println("======구분선======");
for(int a=1; a<10; a++) {
System.out.println(g +"x" +a +"=" + (g*a));
}
}
======구분선======
2x1=2
2x2=4
2x3=6
2x4=8
2x5=10
2x6=12
2x7=14
2x8=16
2x9=18
======구분선======
4x1=4
4x2=8
4x3=12
4x4=16
4x5=20
4x6=24
4x7=28
4x8=32
4x9=36
======구분선======
6x1=6
6x2=12
6x3=18
6x4=24
6x5=30
6x6=36
6x7=42
6x8=48
6x9=54
======구분선======
8x1=8
8x2=16
8x3=24
8x4=32
8x5=40
8x6=48
8x7=56
8x8=64
8x9=72
(연습4) 짝수단을 가로로 출력하시오.
(hint) 고정될 숫자의 for문을 안쪽으로 넣어두고, 변경될 숫자의 for문을 밖으로 빼주면 됨.
// 짝수단을 가로로 출력하시오.
for (int g=1; g<10; g+=1) {
System.out.println();
for(int a=2; a<10; a+=2) {
System.out.print(a +"x" +g +"=" + (g*a) +"\t");
}
}
2x1=2 4x1=4 6x1=6 8x1=8
2x2=4 4x2=8 6x2=12 8x2=16
2x3=6 4x3=12 6x3=18 8x3=24
2x4=8 4x4=16 6x4=24 8x4=32
2x5=10 4x5=20 6x5=30 8x5=40
2x6=12 4x6=24 6x6=36 8x6=48
2x7=14 4x7=28 6x7=42 8x7=56
2x8=16 4x8=32 6x8=48 8x8=64
2x9=18 4x9=36 6x9=54 8x9=72
## 배열
: 같은 type(기본형 or 참조형)을 일괄 처리할 때 사용되는 객체.
배열은 항상 for문과 같이 쓰임.
![](https://blog.kakaocdn.net/dn/ciHLAI/btsBGlTROHc/R0wfYra63fwrrKyMW6kAO0/img.png)
(형태) 타입+연산자([ ]) 를 사용.
ex. int[ ] b = new int[ 4 ]; // 이런 형태이며, 선언된 변수에 연산자 값(4)에 new가 들어감.
int로 선언된 배열은 변수에 int변수.length 형태로 코딩
public class ArrayEx1 {
public static void main(String[] args) {
// 배열의 방갯수에 맞게 숫자를 나열하시오.
int [] garden = new int[10];
for (int i=0; i<garden.length; i++) { // 배열명.length 형태이며, 배열 10개로 잡은 방을 10이하까지 길이를 둠.
garden [i]=i+1;
}
for (int i=0; i<garden.length; i++) { // 배열크기를 0부터 시작해서 1개씩 증가하되, 변수(garden)에 길이를 잡아둠
System.out.println(garden[i]);
}
}
}
배열은 args를 선언해도 답을 구할 수 있다.
public class ArrayEx2 {
public static void main(String[] args) {
for (int i=0; i<args.length; i++) { // args 배열 수를 의미
System.out.println(args[i]);
}
System.out.println(args[2].length()); //배열방.length()함수는 특정 배열방의 크기.
}
}
경로: 우측 마우스 > RUS AS > Run Configirations > Arguments 클릭 > program arguments에 입력할 값 입력 > RUN
![](https://blog.kakaocdn.net/dn/cZ0deV/btsBBMrvbjK/5Wm7AmopmD3qJxuJIwmKB0/img.png)
(추가) 명령프롬프트 내에서도 입력가능.
![](https://blog.kakaocdn.net/dn/bGctpO/btsBB9tdss4/chDjXe2petWr81IOERPm01/img.png)
## 랜덤으로 숫자 추출
1. 교환 알고리즘(초기화)
1) A를 임시공간인 변수에 저장
2) B를 A에 저장(대입)
3) 임시저장된 변수(A값)를 B에 대입.
ex. temp = lotto [0];
lotto[0] = lotto[bunhp];
lotto[bunho]=temp;
public class Lotto {
public static void main(String[] args) {
int[] lotto =new int[45]; // lotto로 45개의 방을 생성
int temp=0;
int bunho=0;
for (int g=0; g<lotto.length; g++) { // num으로 lotto변수의 길이증감
lotto[g]=g+1; // lotto의 num변수의 증감치
}
System.out.println("로또 당첨");
for(int w=1; w<6; w++) { // 5번 반복하기 위해선, for문을 만들어 추가
for (int s=1; s<80000; s++){
bunho = (int)(Math.random()*45); // for문 안에서 random으로 호출
temp = lotto[0]; // 교환알고리즘 1) lotto변수를 a에 임시저장
lotto[0]=lotto[bunho]; // 교환알고리즘 2) bunho를 lotto변수에 넣어서 0부터 대입
lotto[bunho]=temp; // 교환알고리즘 3) lotto변수에 넣은 bunho를 a에 대입
}
System.out.print(w+0 + "\t");
for(int d=0; d<6; d++) {
System.out.print(lotto[d] + "\t");
}
System.out.println();
}
}
로또 당첨
1 22 11 17 18 16 30
2 34 16 28 1 35 26
3 7 45 44 22 2 41
4 35 9 25 34 12 21
5 26 33 9 38 13 39
** 랜덤숫자의 동일 숫자의 반복을 줄이기 위해, 횟수를 늘려서 경우의 수를 줄이는 방법도 있음.
![](https://blog.kakaocdn.net/dn/b7uJUe/btsBC0cbiYY/sSq5Kii4a9byUNDvd851Mk/img.png)
##동치 연산자
: 두 연산자가 동일한 객체를 참조 할때만 true를 반환
## 동치연산자의 종류
1. 동등 연산자: ==
2. 부등 연산자: !=
3. 일치 연산자: ===
4. 불일치 연산자: !==
(연습5) 남자 여자가 가위바위보를 했을때, 입력되는 값에 따라 여부를 코딩하시오(동치연산자 사용)
import java.util.Scanner;
public class eEqualsEx {
public static void main(String[] args) {
// 동치연산자(가위바위보)
Scanner sc=new Scanner(System.in);
String man;
String woman;
System.out.println("남자:"); man = sc.nextLine();
System.out.println("여자:"); woman = sc.nextLine();
if(man.equals(woman)) { // equals는 선언된 man과 equals의 같은지를 체크가
System.out.println("둘은 비겼습니다.");
}else if(man.equals("바위") && woman.equals("가위") ||
man.equals("가위") && woman.equals("보") ||
man.equals("보") && woman.equals("바위")) {
System.out.println("남자가 이겼습니다.");
} else {
System.out.println("여자가 이겼습니다.");
}
}
}
(연습5-1) 가위바위보가 비겼을때, 다시 가위바위보 하는 코딩
(hint) do-while 반복문에 동치연산자를 넣어서 반복하는 형태
public class eEqualsEx {
public static void main(String[] args) {
// 동치연산자(가위바위보)
Scanner sc=new Scanner(System.in);
String man;
String woman;
do {
System.out.print("남자:"); man = sc.nextLine();
System.out.print("여자:"); woman = sc.nextLine();
if(man.equals(woman)) { // equals는 선언된 man과 equals의 같은지를 체크가
System.out.println("둘은 비겼습니다.");
System.out.println("비겼으니 다시 입력하세요.");
continue; // 비겼을때 continue로 다시 do문으로 이동.
} else if(man.equals("바위") && woman.equals("가위") ||
man.equals("가위") && woman.equals("보") ||
man.equals("보") && woman.equals("바위")) {
System.out.println("남자가 이겼습니다.");
break; // 이겼을때 break로 함수에서 벗어남.
} else {
System.out.println("여자가 이겼습니다.");
break; // 이겼을때 break로 함수에서 벗어남.
}
}while(true);
}
}
남자:바위
여자:바위
둘은 비겼습니다.
비겼으니 다시 입력하세요.
남자:가위
여자:바위
여자가 이겼습니다.