일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- java 함수
- java
- JAVA 제어문
- java 로또
- java spider
- SQLD 자격시험 개념정리
- sqld revoke
- JAVA 연산자
- sqld 옵티마이져
- java 성별
- JAVA for문
- java 논리연산자
- Java 메소드
- java 상속
- sqld 자격증
- PLSQL
- sqld deny
- SQLD 옵티마이저
- Java Cat
- java Fish
- sqld trigger
- sqld remame
- java Animal
- SQLD 핵심포인트
- SQL
- java 단축키
- java 구구단
- java string
- sqld grant
- SQLD 특강
- 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 거짓을 반환하는 연산자
대입연산자(=)는 오른쪽 값을 왼쪽에 대입하는 연산자
※ 논리시프트
<<< 숫자 , >>> 숫자는 숫자만큼 좌측으로 이동하라는 연산자
(연습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문과 같이 쓰임.
(형태) 타입+연산자([ ]) 를 사용.
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
(추가) 명령프롬프트 내에서도 입력가능.
## 랜덤으로 숫자 추출
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
** 랜덤숫자의 동일 숫자의 반복을 줄이기 위해, 횟수를 늘려서 경우의 수를 줄이는 방법도 있음.
##동치 연산자
: 두 연산자가 동일한 객체를 참조 할때만 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);
}
}
남자:바위
여자:바위
둘은 비겼습니다.
비겼으니 다시 입력하세요.
남자:가위
여자:바위
여자가 이겼습니다.