연산자,배열_Java

miin·2021년 3월 30일
0

JAVA 

목록 보기
1/13

연산자 연산을 수행하는 기호
피연산자(operand)
연산 대상이 되는 데이터(리터럴,변수)
피연산자 연산자 피연산자
3 + 7

equals는 값 비교할때 사용

문자열 상수도 대문자로 시작, 새로운 단어가 나올때마다 _로 구성한다

정수,실수,불리언,문자,문자열

비교연산자 < > = !=(다르다)

정수/정수 = 정수 (int)
% = 나머지 연산자
ex) 7%3=1 8%6=2
할당연산자는 값이 바뀜
char 문자
string 문자열
boolean 자료형 true, false
double 실수

t=1 t는 1이다
t==1 t가 1이냐?
t+=1, t=t+1, t++ t값을 하나 증가(즉시)
t--, t=t-1, t-=1 t값을 하나 감소
++t t값을 하나 증가(다음차례때 실행)
ex) x=10 y=10
++x; //11
y++; //10

sysout(++x); //12
sysout(y++); //11

매개변수란
F()의 경우 유닛이 동굴에 들어갈떄 아무것도 들고 들어가지 않는 것을 의미하고,
F(Y)의 경우 유닛이 동굴에 들어갈 때 밧줄 같은 도구를 들고 들어가는 것 처럼 Y를
가지고 들어간다는 것을 의미한다

return
함수가 종료될떄 리턴되는 값을 의미
return Y;는 리턴되는 값이 y라는 의미

변수를 쓰는이유
1 저장공간 확보
2 변수구분

변수 사용 범위
1 변수가 어떤 범위에서 사용될 것인지 고려하여 선언위치 결정할 것
2 메소드 블록 전체에서 사용하려는 경우 메소드 블록 첫머리에 선언
3 특정 블록 내부에서만 사용하려는 경우 해당 블록내에 선언

새로운 단어가 나올 시 변수일 확률이 크다

우선순위 법칙
1 같은 우선순위는 기본적으로 왼쪽에서 오른쪽으로 연산된다
2 = 연산자는 오른쪽에서 왼쪽으로 연산된다
3 +,-,%,/, 연산자에서 %/가 순위가 제일 높고, 그다음이 +,- 그다음이 = 이다
4 괄호가 있으면 괄호가 우선순위가 가장 높아 먼저 계산된다
5 = 연산자는 +-%/* 보다 연산자 우선순위가 낮다

괄호순서 []->{}->()

변수이름은 특수문자,숫자먼저 안됨

연산자에서 중요한것
1 우선순위 2 연산방향
계산결과가 생각한것과 다르면 웹에서 연산자 우선순위 찾아볼것

=는 기존의 데이터를 지우고 새로운값으로 할당함, 기존의값을 살리려면 변수 사용

%나누기 연산의 사용용도
1 어떤 숫자가 배수인지 아닌지 확인할때 사용
2 어떤 숫자가 홀수인지 짝수인지 확인할때 사용
3 잔돈 계산할때 사용
4 초를 시분초로 변경할때 사용
a라는수가 b에 배수인지 알려면 a%b==0

리터럴(literal)
소스코드에서 프로그래머에 의해 직접 입력된 값
다음경우를 자바에서 정수로 인식

\u 는 유니코드라는 의미

문자열은 큰따옴표로 감싼 문자를 문자열이라고함
이스케이프(escape) 문자
이스케이프 문자를 사용하면 특정 문자를 포함시키거나, 문자열의 출력을 제어할 수 있음


정수타입 : 정수를 저장할 수 있는 타입으로 byte, short, int, long
char 타입: 작은따옴표로 감싼 하나의 문자 리터럴을 저장할수 있는 타입
string타입: 큰따옴표로 감싼 문자열을 저장할수 있는 타입
실수타입: 실수를 저장할수 있는 타입으로 float, double 타입을 말하
boolean타입 : 참과 거짓을 의미하는 true와 false를 저장할수 있는 타입


int이하의 정수자료형은 int형으로 자동변환된다
float형은 double형으로 자동변환된다
자동형은 보통 작은 자료형에서 큰자료형에 들어갈때 발생하지만 아닌경우도 있어 그때그때 확인

5를 음수로 만들려면 5-1=-5
-5를 양수로 만들려면 -5
-1=5

1/2를 정수로 계산하면 0
1.0/2.0을 실수로 계산하면 0.5

사용자입력은 모두 string
System.out.println("입력하세요..>>");
string str = new java.util.scanner(System.in).nextLine();
System.out.println(str);

문자열을 정수,실수로 바꾸는 방법
string str="10";
int i1=Integer.parseInt(str);
double d1=Double.parseDouble("12.23");

문자열은 equals를 써야 비교가 된다
if(str.equals.("10")){
System.out.println("10이랑 같음");
}else {
System.out.println("10이랑 다름")
}

피보나치 수열
두개를 더해서 나온수가 다음수*무한반복

사각형 넓이 구하기 가로 세로
사각기둥 부피구하기 가로
세로높이
사다리꼴 넓이 구하기 (윗변+아랫변)
높이 /2
미터 곱하기 100 = 센티미터
센티미터 나누기 100 = 미터
평균구하는법 모두 더해서 더한개체만큼 나누기


문자열 + 다른형 = 문자열
블리언은 연산 절대불가 문자랑만 가능
정수로 값이 나오는걸 원하면 ()로 묶어준다
문자열은 캐스팅연산자 쓸수 없음
(int)11.1+11.1 = 22.1 (실수->정수=정수)
(int)(11.1+11.1) = 22 (괄호 우선순위 계산후 형변환(정수))

->넣을수 있다 이정도는 암기

int+float=float
int+long=long
int+double= double

boolean 자료형은 문자열 자료형을 제외하고는 연산할 수 없다
1+true -> (X) "문자열"+true = '문자열true'라고 출력됨
(byte,short,char,int) + (byte,short,char,int) = int
byte+int = int, short+short = int
char+int=int
int+float==float
int+long==long
int+double==double
ex) 3+3.0+"JDK"
출력="6.0JDK"

short s3=(short)(s+s) == short + int = int
short s2=(short)s+s == short + short = short
char중에 유니코드로 문자된 경우도 있어서 정수일 확률도 높음

byte(1)<short(2)<int(4)<long(8)<float(4)<double(8)




&&>|| 연산순위
&&는 둘다포함
||는 둘중에 하나라도 (or)
! not 반대 true<->false

최대값구하기 max=Integer.MAX.VALUE
최소값구하기 min=Integer.MIN.VALUE

.length 배열에 들어있는 데이터갯수까지

switch 범위조회 불가능

배열
2차원 배열 기술법
int[][] score = {{1,2,3},{4,5,6}};
score[0][2] = 4; -> 0번째 박스에 2번째 데이터를 4로 변경->{1,2,4}

//숫자 증가
int[][] intArray = new int [4][3];
int num = 1;
for(int i=0; i<intArray.length; i++) {
for(int j=0; j<intArray[i].length; j++) {
intArray[i][j] = num++;
}
//숫자감소
for(int j=intArray[i].length; j>=0; j--){
intArray[i][j] = num++;
}
//행변경
int[][] intArray = new int [4][3];
int[][] copy = new int [4][3];
int num = 1;
//쉬프트
for(int i=0; i<intArray.length; i++) {
for(int j=0; j<intArray[i].length; j++) {
if(i==intArray.lenth-1) {
copy[0][j] = intArray[i][j];
} else {
copy[i+1][j] = intArray[i][j];
}
}
}
//복사
for(int i=0; i<intArray.length; i++) {
for(int j=0; j<intArray[i].length; j++){
intArray[i][j] = copy[i][j];
}
}
//출력부
for(int i=0; i<intArray.length; i++) {
for(int j=0; j<intArray[i]; j++){
System.out.print(intArray[i][j]+"\t");
} System.out.println();
}

다 동일한 배열코드
1. int sum(int[] values) {
}

  1. int[] values = {1,2,3};
    int result = sum(values);

  2. int result = sum(new int[]{1,2,3,4}};

0개의 댓글