Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Optuna
- 딥시크
- 나타나지 않을 때
- deepseek
- 유튜브자막 추출하는법
- 도봉1기
- 하이퍼파라미터최적화
- 유튜브자막다운로드
- (도봉 SW 1기) LLM 활용 인공지능 서비스 개발자 양성과정
- One-Hot encoding
- 유튜브자막 추출
- 안지워지는이유
- 테스트데이터
- ChatGPT
- 개발자도구로 영상자막 다운받는법
- Zoom 영상 자막 다운
- randomstate
- JAVA EE Integration
- Zoom 자막 추출
- Raytune
- Zoom자막
- 노션 countif
- 도봉1기llm
- RandomSearchCV
- hyperparameter-optimization
- GridSerarchCV
- 새싹LLM강의
- 영상 자막 추출
- SeSAC
- LLM
Archives
- Today
- Total
잇연
[국비지원교육] JAVA 3일차_연산자_05.03 본문
1. 연산자 종류 => 결과값
--------
데이터형
정수 : byte,int,long
실수 : double
논리 : boolean
문자 : char
1) 단항연산자
= 증감연산자 (++,--)
= 부정연산자 (!)
= 형변환연산자 ((type=기본형)) (int) , (double)...
2) 이항연산자
= 산술연산자 (+,-,*,/,%)
= 비교연산자 (==,!=,<,>,<=,>=)
= 논리연산자 (&& , ||)
= 대입연산자 (= , += , -=)
3) 삼항연산자 ?:
단항연산자-증감연산자
```java
증감 연산자 : 증가(++) / 감소(--) => 1 증가 / 1 감소
---------
1) 전치 연산자
++a , --a (먼저 증가,감소를 한후에 다른 연산 수행)
2) 후치 연산자
a++ , a-- (다른 연산을 수행하고 나중에 증가,감소가 된다)
예)
int a=10;
int b = ++a;
-- --
1(먼저 증가)
2(대입)
a=11,b=11
================> int b = ++a(11)
b=11
int a=10;
int b = a++;
--- ---
1 2
=> 증가전에 대입 b=10
=> a값 증가 a=11
```
```java
/*
int a=10;
int b= ++a + a++ + ++a + a++ + a++;
a=? ==> 15
b=?
*/
public class 단항연산자_증감연산자_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*int a=10;
int b= ++a + a++ + ++a + a++ + a++;
System.out.println(a);
System.out.println(b);
a=10;
b= a++ + a++ + a++ + ++a + ++a;
System.out.println(a);
System.out.println(b);*/
int a=10;
int b=a++; // 대입 후 증가
System.out.println("a="+a+",b="+b);
// a=11 , b=10
int c=10;
int d=++c; // 증가 후 대입
System.out.println("c="+c+",d="+d);
// c=11, d=11
// 전치 , 후치 관련없이 => 1개증가
// 연산자 =(대입연산자)
// 반복문에 주로 사용 => 데이터베이스
int m=10;
int n=m--; // n=10
// m감소 => m=9
System.out.println("m="+m+",n="+n);
int x=10;
int y=--x; // x감소 => x=9 , y=9
System.out.println("x="+x+",y="+y);
// 1씩감소 (--) , 1씩증가 (++)
}
}
```
```java
// 단항 : 증감 , 부정 , 형변환
// 이항 : 산술, 논리,비교 , 대입
// 삼항 : (조건)?값:값 ==> if~else => 소스를 줄인다(웹,게임)
public class 단항연산자_증감연산자_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
char c='A'; //char는 연산이 되면 => 정수변경후에 처리
c++;
System.out.println(c);
System.out.println(c++);//B => 출력 / 증가
// 증가 c='C'
System.out.println(++c);//D
// 증가
int a=10;
System.out.println(a);//10
System.out.println(a++);//10
// a=11 => 증가된값을 기억하고 있다
System.out.println(a++);//11
// a=12
System.out.println(a++);//12
// a=13
System.out.println(a);//13
// 변수는 } 에서 종료
// 지역변수 ==> 블록변수 (자동으로 메모리에서 해제 => 메모리 자체에 처리)
// 스택공간에 저장
// 지역변수는 반드시 초기화를 한다
}
}
```
단항연산자-부정연산자
```java
// ! => boolean에서 사용이 가능 => 턴
// ! => 예약 가능한날 , 예약이 없는 날 (예약프로그램 , 장바구니)
/*
* 사용방법
* boolean bCheck=false; //false
* bCheck=!bCheck; // true
* 부정연산자
*/
public class 단항연산자_부정연산자 {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean bCheck=false;
System.out.println("bCheck="+bCheck);
bCheck=!bCheck;// NOT
System.out.println("bCheck="+bCheck);
// true => false => !true
// false => true => !false
}
}
```
단항연산자-형변환연산자
- ** byte < char,short < int < long < float < double
- /* 결과값 : ++,--(정수만 사용이 가능) => 정수 ! (boolean) => 논리형 형변환 연산자 => boolean을 제외한 모든 기본형 사용이 가능 => 결과값? 1. 형식 (기호) 2. 결과값 => 형변환 타입으로 나온다 (int) => int , (double) => double , (char) => char = 자동 형변환 작은 데이터형 => 큰데이터형으로 변환 int => char , double => int ... = 강제 형변환 (형변환 연산자) 큰 데이터형 => 작은 데이터형으로 변경 (int)double , (char)int... = 데이터형 크기 순서 byte < char,short < int < long < float < double */
이항연산자-산술연산자
```java
/*
** 단항연산자 (-,+)
int a=1
a=-a;//음수
이항연산자 : 피연산자(연산대상) 2개일때
a+b
- -
=> 산술 연산자 ( + , - , * , / , % )
+ : 실제 산술 , 문자열 결합(***) => 크롤링
- , * : 산술
/ => 0으로 나눌 수 없다 , 정수/정수=정수 (오라클 , JSTL => 실수)
% => 남는 값은 왼쪽부호를 따라 간다
우선순위 : * , / , % 우선순위 , +,- 나중 순위
*/
```
```java
// 3개의 정수를 받아서 총점 / 평균을 구한다
import java.util.Scanner;
public class 이항연산자_산술연산자 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//변수 선언
int kor,eng,math;
int total;
double avg;
//변수 초기화
Scanner scan=new Scanner(System.in); // 사용자 입력값 (도스에서 사용)
// System.in => 키보드 입력값을 가지고 온다
System.out.print("국어점수 입력:");
kor=scan.nextInt();
System.out.print("영어점수 입력:");
eng=scan.nextInt();
System.out.print("수학점수 입력:");
math=scan.nextInt();
// 총점
total=kor+eng+math;
// 평균
avg=total/3.0; // 소수점 => 실수로 나눠준다
//화면 출력
System.out.println("국어점수:"+kor);
System.out.println("영어점수:"+eng);
System.out.println("수학점수:"+math);
System.out.println("총점:"+total);
System.out.printf("평균:%.2f\\n",avg);//반올림
}
}
```
이항연산자-비교연산자
```java
// => 조건문 (if,for)
/*
1. 비교연산자 종류 (정수,실수,문자,논리=>기본형)
참조형 (배열,클래스)= 비교할 수 없다
== 같다 (문자열은 비교할 수 없다: equals)
정수 비교
10==9 ==> false
문자 비교
'A'=='A' ==> true
'A'==65 ==> true
=======> 연산처리 자동으로 정수로 변경
'A'==65
---
int로 변경 => 65==65
*** 연산 같은 데이터형만 연산 처리가 된다
*** 작은 데이터형은 큰 데이터형으로 변경후에 연산처리
double int => int(double)
10.5 == 10
--- 10.0 => 자동 형변환
논리 비교
true==false ==> false
=> == , != 가능 (크기비교는 안된다)
실수 비교
10.5 == 10.5 ==> true
!= 같지 않다
정수 비교
10!=9 ==> true
실수 비교
10.5!=10.5 ==> false
문자 비교
'A'!=66 ==> true
---
65로 변경
논리 비교
true!=false ==> true
< 작다 (왼쪽)
> 크다
<= 작거나 같다 ( < || == )
>= 크거나 같다 ( > || == )
-----------------------------------------
2. 연산결과값 (boolean => true/false) , 연산자
*/
public class 비교연산자 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1. 정수 비교
System.out.println(100==99); //같다 (= 대입연산자)
//2. 문자 비교
System.out.println('A'=='B');
System.out.println('A'==65);//65==65
// 'A'=> int변경(65)
System.out.println(10.5==10);
// 10 => double (10.0)
System.out.println(true==false);
int a=10;
int b=9;
System.out.println(a==++b);
// a==b++ => b증가전에 비교
// a==++b => b먼저증가 비교
int c=66;
char ch='A';
System.out.println(--c==ch);
//c=65
System.out.println(c==ch);
System.out.println(c++ == ch++);
// c=66 , ch='B'
System.out.println("c="+c);
System.out.println("ch="+ch);
c=67;
ch='B';//66
System.out.println(c!=ch);
System.out.println(c!=ch++);
//ch='C'
System.out.println(c!=ch); //'C'=67
c=68;
ch='D'; // 68
System.out.println(c<ch);//68<68
System.out.println(c>ch);//68>68
System.out.println(c<=ch);// 68<68 || 68==68
System.out.println(c>=ch);// 68>68 || 68==68
// 조건문 => 가장 많이 등장하는 연산자
// 오라클 (=) , 자바스크립트 (===) ES6
/* Back => 자바/오라클
Front => HTML,CSS,JavaScript
----------------------------
Back+Front : JSP == JDBC
=> Front (Jquery,Ajax)
----------------------
Spring == Mybatis
SELECT * FROM movie
WHERE title LIKE '%강%'
=> Front (VueJS) => vuex
Spring-Boot == JPA
findByTitleLike()
=> Front (React) => WebPack(Redux)
============ 배포 (AWS)
옵션 : AI(ChatBot)
*/
}
}
```
이항연산자-논리연산자
```java
/*
&&(AND) , ||(OR) ==> true/false
&& => 기간이나 범위 포함
|| => 기간이나 범위를 벗어난 경우
--------------------------
형식 : (조건) && (조건)
----- ------
| |
---------
|
결과값
(조건) || (조건)
----- ------
| |
---------
|
결과값
----------------------
경우의 수 : 로그인처리 , 아이디중복 , 우편번호 검색 , 아이디 찾기, 비밀번호 찾기
비밀번호 검색 , 영화 검색 .....
---------------------------------------
&&(직렬) ||(병렬)
---------------------------------------
true true true true
---------------------------------------
true false false true
---------------------------------------
false true false true
---------------------------------------
false false false false
---------------------------------------
=> 효율적인 연산처리 (최적화)
------------
(조건) && (조건)
------- 실행이 안되게 만든다
false
(조건) || (조건)
------- 실행이 안되게 만든다
true
int a=10;
int b=9;
(a<b) && (a==++b) ==> false
b=9
(a<b) || (a==++b) ==> true
b=10
*/
```
```java
public class 논리연산자 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=10;
int b=9;
boolean result=(a<b) && (a==++b);
// false => 연산종료
System.out.println("결과값:"+result);//false
System.out.println("a="+a);//10
System.out.println("b="+b);//9
a=10;
b=9;
result=(a<b) || (a==++b);
// false -------- true여부 확인
System.out.println("결과값:"+result);//true
System.out.println("a="+a);//10
System.out.println("b="+b);//10
char c='a';
// 대문자 여부 확인 => A~Z
result=(c>='A') && (c<='Z'); //c가 A-Z사이에 있다
System.out.println(result);
// 소문자 여부 확인
result=(c>='a') && (c<='z');
System.out.println(result);
int k=(int)(Math.random()*20)+1;//1~20
System.out.println("k="+k);
// k가 1~10 사이에 있다 => &&
result=(k>=1) && (k<=10);
System.out.println(result+" &&수행");
// k가 1~10 사이에 없다 => ||
result=(k<1) || (k>10);
System.out.println(result+" ||수행");
}
}
```
이항연산자-대입연산자
```java
/*
대입연산자 (값을 메모리에 저장)
------------------------ 최하위 연산자 (연산순위가 가장 낮다)
연산자 종류 ( = , += , -= )
*** = (가장 많이 사용되는 대입연산자)
------------------ 복합 대입연산자
*** +=
int a=10;
---------
a+=10; ===> a=a+10; => 20
===> 반복 => 1개증가 , 여러개 증가
++ +=
===> += (문자열 결합:파일읽기 , 웹에서 값을 읽어 올때)
-----------------------------------
한글자씩 읽어 온다 => (통으로 읽어 올 수 있다)
---------
*** -=
int a=10;
a-=5; ===> a=a-5; => 5
*=
int a=10;
a*=5; ===> a=a*5; => 50
----------------------------
a++ , ++a , a+=1 , a=a+1 ==> 1씩 증가하는 프로그램
--------- 1개만 증가
----------------------------
/=
int a=10;
a/=2; ==> a=a/2 ==> 5
%=
int a=10;
a%=3; ==> a=a%3 ==> 1
---
10%3
&=
int a=10;
a&=7; ==> a=a&7 ==> 2
1010
0111
---- &
0010 ==> 2
|=
int a=10;
a|=7; ==> a=a|7 ==> 15
1010
0111
---- |
1111 ==> 15
^=
int a=10;
a^=7 ==> a=a^7 ==> 13
1010
0111
----- ^
1101 ==> 13
>>=
int a=10;
a>>=3 ==> a=a>>3 ==> 1
10>>3 ==> 1
1(010)
-
<<=
int a=10;
a<<=3; ==> a=a<<3 ==80
10<<3 ==> 80
1010000
- 16 ==> 80
-64
------------------
--------------------------------------------
*/
```
삼항연산자-:?
```java
/*
* => 프로그램 (변수,연산자,제어문) => 오라클 , 자바스크립트 , VueJS
* JSTL , React
* 클래스
* 변수 + 메소드
* ----
* 연산자+제어문
* 객체지향 => 재사용 (묶어둔다)
* 삼항연산자 (웹에서 => 페이지(이전/다음)) => if~else
* 1) 형식 :
* (조건)?값1:값2
* --- ---
* | | 조건이 false일때 수행하는 값
* 조건 true일때 수행하는 값
* 예)
* int a=10;
* a%2==0?"짝수":"홀수" => 짝수
* ------
* true
*/
import java.util.Scanner;
// 정수입력 => 홀수/짝수
public class 삼항연산자 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1. Scanner => 키보드 입력 받기
Scanner scan=new Scanner(System.in);
/*System.out.print("정수 입력:");
int num=scan.nextInt();
// 짝수/홀수 => 처리
char result=num%2==0?'짝':'홀';
System.out.println(result+"수");*/
// scanner는 문자를 받을 수 없다 / 문자열 (String)
System.out.print("알파벳 입력:");
String alpha=scan.next();
// charAt(0) => 첫글자를 char로 읽어 온다
// "ABCD" charAt(0) , charAt(1), charAt(2) charAt(3)
char result=(alpha.charAt(0)>='A' && alpha.charAt(0)<='Z')?'대':'소';
System.out.println(result+"문자");
}
}
```
'JAVA' 카테고리의 다른 글
w (0) | 2022.05.06 |
---|---|
[국비지원교육] JAVA 4일차_제어문(조건문)_05.04 (0) | 2022.05.05 |
[국비지원교육] JAVA 2일차_연산자_05.02 (0) | 2022.05.02 |
자바의 정석 공부, 요약 (0) | 2022.05.01 |
[국비지원교육] JAVA 1일차_변수_04.29 (0) | 2022.04.29 |