1. JAVA/3). 자바_개념

자바_개념_Day_05

구이제이 2024. 1. 5. 14:57

 

=> x 

>= 이렇게 쓴다

-

 

문자와 문자열은 다르다

-

 

byte(파일입출력)

-

 

-자바는 =(등호)를 기준으로 왼쪽과 오른쪽은 동일해야한다.

강제타입변화 주의해서 써야한다.

-







프로젝트생성




byte : -128 ~127범위



nan과 infinity

 

Infinity(무한대) : 

.왼쪽의 피연산자(값)가 정수이고 오른쪽의 피연산자(값)이 0일 경우에 나눗셈을 하면,  

ArithmeticException 예외가 발생 됨

그러나 왼쪽의 피연산자(값)가 정수 또는 실수이고 오른쪽의 피연산자(값)이

0.0일 경우에 나눗셈을 하면, 예외가 발생되지 않고 결과가 Infinity가 됨



NaN(Not a Number)

.왼쪽의 피연산자(값)가 정수이고 오른쪽의 피연산자(값)이 0일 경우에 나머지 연산을 하면,  

ArithmeticException 예외가 발생 됨

그러나 왼쪽의 피연산자(값)가 정수 또는 실수이고 오른쪽의 피연산자(값)이

0.0일 경우에 나머지 연산을 하면, 예외가 발생되지 않고 결과가 Nan이 됨



-문제는 Infinity , NaN 상태에서 계속해서 연산을 수행하면 어떤 연산을 하더라도 결과는 계속해서 Infinity와 NaN이 됨



1)해결 방법

-Infinity 또는 NaN인지 확인하고 처리

-Double.isInfinity(값) : 값이 infinity면 true, 아니면 false

-Double.isNaN(값 : 값이 NaN이면 true, 아니면 false






클래스 영역 스택 지역변수 힙(객체)

클래스 주소

메소드




▣ ==과 equals

 

1. == : 왼쪽과 오른쪽이 같다.

      스택에 있는 변수에 담긴 값이 같은지 비교

 

int a=3, b=7;

boolean result = (a==b)

    a != b

 

String n = “홍가”;

String n1 = new String(“홍가”);

n==n1 => 스택에 있는 변수에 저장된 주소가 같은가 비교

n.equals(n1) => 변수가 가리키고 있는 내용이 같은가 비교



2. 문자열을 비교

문자1.equals(문자2) : 문자열1과 문자열2의 내용이 같은지 비교

 

test : Ex1(day05/bookExam)



================================

▣제어문

위에서 아래로 가는 이 프로그래밍의 흐름을 유일하게 제어할수 있는게 이 제어문

 

-조건문 : 조건식에 따라 다른 실행문을 실행하기 위해 사용

if, if~else, if ~ else if … else, switch

 

-반복문 : 반복적인 작업

for, while, do ~while…

-break, continue

 

1.조건문

1)if문

if(조건){

-조건: 참(true)과 거짓(false)를 구분할 수 있는 것이면 무엇이든 가능

true

false

num >= 30

name.equals(“홍길동”)

 

조건의 결과가 참일 때 실행할 문장드들

}

 

—---------------------------------------------------------------

 

if(조건)

{ <<<<<<<<<올려서 써라

조건의 결과가 참일 때 실행할 문장들

 

}



—---------------------------------------------------------------

 

if(조건){

조건의 결과가 참일 때 실행할 문장들

}else{

조건의 결과가 거짓일 때 실행할 문장들

}















//  -b란 b * (-1) 이다 // byte 연산은 byte => int이다.

 

괄호의 중요성

// var3 = 3.5,  var2 = 2; 일떄

//(int)var3 * var2 = 6

//(int)(var3 * var2) = 7  //괄호의 중요성



//double area = ((lengthTop+lengthBottom)*height/2.0); = 값 : 52.5

//double area = ((lengthTop+lengthBottom)*height/2); = 값 : 52.0

 

★두개의차이

//System.out.println(7/0); //ArithmeticException: / by zero

//System.out.println(7/0.0); //Infinity(무한대)



★괄호의 중요성

//double var4 = (var1 * var1) * (Double.parseDouble(var2 + "." + var3)); //정상

//double var4 = (var1 * var1) * Double.parseDouble(var2 + "." + var3); //비정상 - 괄호안하면 곱하기를 앞에서만 한다.




—-------------------

 

-책/요약정리

 

'1. JAVA > 3). 자바_개념' 카테고리의 다른 글

자바_개념_Day_07  (0) 2024.01.09
자바_개념_Day_06  (0) 2024.01.08
자바_개념_Day_04  (1) 2024.01.05
자바_개념_Day_03  (1) 2024.01.05
자바_개념_Day_02  (2) 2024.01.05