Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Tags
more
Archives
Today
Total
관리 메뉴

Full-Stack 개발자가 되려는 작은 개발자의 블로그

Java 기초 실습2 본문

강의 정리/Java

Java 기초 실습2

jhjin 2020. 3. 3. 11:53

Java의 명명 규칙

대소문자가 구분되며, 길이의 제한이 없다       ▶ int Grade와 int grade는 서로 다른 변수이다.
예약어는 사용 할 수 없다. ▶ true는 예약어라 변수로 사용 불가! 단 True는 사용 가능
숫자로 시작 할 수 없다. ▶ int num1은 가능 하지만 int 1num은 사용 불가
특수문자는 '_'와 '$'만 사용 가능 ▶ first_num, $num

※ 권장사항

1. 클래스는 대문자로, 변수 및 메소드는 소문자로 시작한다.

2. 문자 두 개를 연결 할 때는 두 번째 문자를 대문자로 시작한다.

3. 상수는 대문자 두 개를 연결 시 '_'사용

 

변수, 상수, 리터럴

변수(Variable) 변하는 값

int num1=10;

num1=20;

상수(Constant) 변하지 않는 값

final int MAX=100;

MAX=200; (X)

리터럴(literal) 그 자체의 값 int num1=10; String str="안녕하세요"

 

자료형변환

자동(암시적/묵시적)형변환 작은 메모리 데이터를 큰 메모리에 저장
명시적형변환 큰 메모리에서 작은 메모리로 값을 저장 할 때(데이터 손실을 감수)
int n1=5;
int n2=2;
//나눗셈 : /
System.out.println((float)n1/(float)n2); //정수는 소수점이 없어 소수점을 버린다.

float f1=3.14f;
//int nf=f1; 이 경우는 자동 형변환이 이루어지지 않는다.
int nf=(int)f1;

//정수 < 실수 < 문자열
//숫자의 문자열 변환
String str4="";
int ntoa=10;
str4=""+ntoa; //문자열 + 정수 ->정수가 문자열로 자동형변환된다.
System.out.println(str4);

/*
* 문제1.다음 중 캐스트연산자((자료형)다른자료형)의 생략이 가능한 문장은
*  int num1=10;
*  	1)byte로 변환
*  		-byte b=(byte)num1;
*  	2)double로 변환
*  		-double d=num1;
*  	3)short로 변환
*  		-short s=(short)num1;
*  	4)long으로 변환
*  		-long l=num1;
*/
byte b=(byte)num1  //명시적
double d=num1; 
short s=(short)num1; //명시적
long l=num1;

 

오버플로우/언더플로우

//오버플로우
byte ob=127;		//최대 크기 127
ob++;			//메모리 크기보다 값이 커짐 -> -128로 순환
System.out.println(ob);
//언더플로우
byte ub=-128;		
ub--;					
System.out.println(ub);

 

printf() 출력 메소드 활용

정수 출력의 경우

//금액 출력
System.out.printf("당첨 %,d원\n",10000000);
//공백 대체(0으로 출력)
System.out.printf("%010d\n",123);
System.out.printf("%10d\n",123);//...???
//10진수 -> 16진수
System.out.printf("10진수 : %d -> 16진수 : %x\n",123,123);
//10진수 -> 8진수
System.out.printf("10진수 : %d -> 8진수 : %o\n",123,123);

실수 출력의 경우

System.out.printf("%f\n",3.14);			//3.140000
System.out.printf("%05.2f\n",3.14);		//03.14
System.out.printf("%05.2f\n",1003.1467); 	//1003.14 공백이 없다면 굳이 0으로 채울 필요가 없다	

연산자(Operator)

1. 산술 연산자

 

+ 피연산자들끼리 더한다.
- 피연산자들끼리 뺀다.
* 피연산자들끼리 곱한다.
/ 피연산자들끼리 나눈다.
% 피연산자들끼리 나눈 후 나머지 값을 구한다. ▶ 정수인 경우만 해당, 암호화/복호화에 자주 사용된다.
Scanner scan=new Scanner(System.in);
int number1=0; //피연산자1
int number2=0; //피연산자2
int result=0;  //연산결과를 담을 변수

System.out.println("간단한 계산기 프로그램");
System.out.println("================================================");
System.out.print("계산할 첫 번째 숫자를 입력하세요 : ");
number1=scan.nextInt();
System.out.print("계산할 두 번째 숫자를 입력하세요 : ");
number2=scan.nextInt();
System.out.println("=============== 계산 중 ===============");
result=number1+number2;

System.out.printf("%d + %d = %d\n",number1,number2,result);
result=number1-number2;
System.out.printf("%d - %d = %d\n",number1,number2,result);
result=number1*number2;
System.out.printf("%d * %d = %d\n",number1,number2,result);
result=number1/number2;
System.out.printf("%d / %d = %d\n",number1,number2,result);
result=number1%number2;
System.out.printf("%d %% %d = %d\n",number1,number2,result);

 

2. 증감 연산자

 

  전위 후위
++ 값을 증가 시킨 후 대입한다. 대입 후 값을 증가 시킨다.
-- 값을 감소 시킨 후 대입한다. 대입 후 값을 감소 시킨다.
//후위연산
int i=0;
i++;
System.out.println("i = "+i); //1
i+=1;			//단축연산자 i=i+1과 같은 의미
System.out.println("i = "+i); //2
System.out.println("i = "+ i++); //2 를 출력 후 i의 값은 3으로 증가
System.out.println("i = "+i); //3
System.out.println("=========================");

//전위연산
i=0;
++i;
System.out.println("i = "+i); //1
System.out.println("i = "+ ++i); //2 i의 증가가 먼저 이루어진 후 출력
System.out.println("=========================");

//전위,후위 비교
int j=0;
int k=0;
int l=0;

k=j++; //후위 연산을 대입이 먼저 이루어진후 연산이 된다.
System.out.println("j = "+j);
System.out.println("k = "+k);
j=0;
l=++j; //전위 연산 후 대입된다.
System.out.println("l = "+l);

 

3. 비교 연산자

 

== 피연산자들끼리 값이 같은지 비교
!= 피연산자들끼리 값이 다른지 비교
< 피연산자1이 피연산자2보다 작은지 비교
> 피연산자1이 피연산자2보다 큰지 비교
<= 피연산자1이 피연산자2보다 작거나 같은지 비교
>= 피연산자1이 피연산자2보다 큰거나 같은지 비교
int n1=4;
int n2=5;
System.out.println("n1 == n2 ->"+ (n1==n2));
System.out.println("n1 != n2 ->"+ (n1!=n2));
System.out.println("n1 > n2 ->"+ (n1>n2));
System.out.println("n1 < n2 ->"+ (n1<n2));
System.out.println("n1 >= n2 ->"+ (n1>=n2));
System.out.println("n1 <= n2 ->"+ (n1<=n2));

//윤년 계산
//윤년의 조건
//1.년도가 4년으로 나누어 떨어지면서 100년으로 나누어 떨어지지 않는다.
//2.년도가 400년으로 나누어 떨어진다.
int dal=2020;

System.out.println((dal%4==0 && dal%100!=0)||dal%400==0);

 

4.논리 연산자

AND(논리곱) 모두 참일 떄만 참 
OR(논리합) 모두 거짓일 때 만 거짓
NOT 값의 반대
XOR  값이 서로 다를 때만 참

※ AND 연산을 수행 할 때 첫 번째 조건에서 거짓이 나온다면 뒤에 조건을 수행하지 않음
※ OR 연산을 수행 할 때 첫 번째 조건이 참이면 뒤에 조건을 수행하지 않음

System.out.print("숫자를 입력해주세요 :");
int number=scan.nextInt();
boolean flag=false;

flag=(number>0)&&(number<5); //AND연산
//flag=(number>0)&&(number++<5); 사용하지 말 것

System.out.println("("+number+">0)&&("+number+"<5) = "+flag);


//입력한 값이 숫자인지 문자인지 판별하는 프로그램
char ch='\0';
//문자열 입력받기
System.out.print("비교할 문자를 입력하세요 : ");
String str=scan.next();
//문자열 -> 문자 변환
//문자열의 0번째 자리의 값을 가져온다.
ch=str.charAt(0);

boolean flag=((ch>='a')&&(ch<='z'))||((ch>='A')&&(ch<='Z'));
System.out.println(ch+"는 "+flag);

 

5.조건 연산자

삼항연산자 : (조건식)?결과문1:결과문2; ▶ 조건식이 참이면 결과문1, 거짓이면 결과문2

//절대값 구하기(-10 -> 10)
int x=0; //입력 값을 담을 변수
int absX=0; //입력 값의 절대값을 담을 변수

System.out.println("절대값으로 변환할 값을 입력 : ");
x=scan.nextInt();

absX=(x>0)?x:-x;
System.out.println(x+" -> "+absX);*/

System.out.print("점수를 입력하세요 : ");
int score=scan.nextInt();
String str=(score>=60)?"합격":"불합격";
System.out.println(str);

System.out.print("점수를 입력하세요 : ");
int score =scan.nextInt();
String str=score>=90?"A":((score>=80)?"B":((score>=70)?"C":((score>=60)?"D":"F")));
System.out.println("당신의 학점은 "+str+"입니다^^");

System.out.print("윤년을 확인할 년도를 입력하세요 : ");
int year=scan.nextInt();
String str=((year%4==0 && year%100!=0) || year%400==0)?"윤년입니다." : "평년입니다.";
System.out.println(year+"년도는 "+str);

'강의 정리 > Java' 카테고리의 다른 글

Java 기초 실습5  (0) 2020.03.09
Java를 이용한 달력 프로그램  (0) 2020.03.08
Java 기초 실습4  (0) 2020.03.05
Java 기초 실습3  (1) 2020.03.04
Java 기초 실습1  (2) 2020.03.02
Comments