변수 : 데이터를 담기 위해 사용(데이터의 종류가 달라져서 변수의 타입이 달라져야 함) ->배열 -> 자료구조
변수의 선언 -> 메모리 할당 (주소값 참조변수) ->자바는 주소를 주소라 생각하기. AI는 편미분해야함.
-대입연산자 : 오른쪽에 있는 값을 왼쪽에 대입하는 것(변수의 초기화)
변수 : 지역변수, 상수, 매개변수, 지역변수 등등
지역변수(local variable) : 특정 블록(메서드) 내에서 선언된 변수
-> 특징 : 반드시 초기화해야함. 값이 사전에 들어가 있어야 한다.
변수선언 -> 변수초기화(값 설정) int,double = 0;, string = ""; char = ' '; boolean = false;
로컬변수 : 기본변수 (string제외 8가지)
string은 클래스
변수의 선언위치에서 변수의 생명력이 결정됨★★ 변수의 scope가 결정됨.
final 변수(상수) : 이름이 모두 대문자
-복합대입연산자
num = num+3;
num + = 3; 같은코드
num++;도 같은 코드 (가장 많이 사용)
-증감연산자
num++;(for문에 자주사용)
int x = 10;
int y=0;
y=x++; (대입 -> 후치증감 순서중요)
System.out.println("x:" + x);
System.out.println("y:" + y);
-> 결과값 x : 11, y:10
int x = 10;
int y=0;
int z=20;
y=x++;
System.out.println("x:" + x);
System.out.println("y:" + y);
System.out.println("z:" + z++);
-> 결과값 z:20(그대로) 출력하고 +1증가
만약 단독으로
z++;쓰면 아무상관없이 +됨
**스캐너쓸때 : sc + ctrl+space
//임의의 정수값에 대해서 전체 자리수 중 짝수,홀수 개수를 구하자.
//5자리 ex)35329
//짝수의 수 : 1
//홀수의 수 : 4
Scanner sc = new Scanner(System.in);
System.out.println("5자리 정수 입력: ");
int num = sc.nextInt();
int even = 0;
int odd = 0;
int num1 = (int)(num/10000);
int num2 = (int)(num/1000);
int num3 = (int)(num/100);
int num4 = (int)(num/10);
odd += num%2;
odd += num1%2;
odd += num2%2;
odd += num3%2;
odd += num4%2;
even = 5-odd;
System.out.println("짝수의 수:" + even);
System.out.println("홀수의 수:" + odd);
**삼항연산자 even + = (num/10000%2 == 0)? 1:0;
//임의의 정수값에 대해서 전체 자리수 중 짝수,홀수 개수를 구하자.(강사님 코드)
//5자리 ex)35329
//짝수의 수 : 1
//홀수의 수 : 4
Scanner sc = new Scanner(System.in);
System.out.println("5자리 정수 입력: ");
int num = sc.nextInt();
int even = 0;
int odd = 0;
even += (num/10000%2 == 0) ? 1:0;
even += (num/1000%2==0)?1:0;
even += (num/100%2==0)?1:0;
even += (num/10%2==0)?1:0;
even += (num%2==0)?1:0;
odd = 5-even;
System.out.println("짝수의 수:" + even);
System.out.println("홀수의 수:" + odd);
-3장. 프리미티브 타입
<자바데이터타입>
기본형(프리미티드 타입) : 실제의 값이 들어가는 것(string제외 8가지 데이터타입) 실제메모리공간에 실제값이 들어가는 것 - boolean(논리형, 1byte), char(문자형, 2byte), byte, short, int, long(정수형, 1,2,4,8byte), float, double(실수형, 4,8byte)
레퍼런스 타입 : 주소값을 넣는 것(배열) 너무 커서 다 담을 수 없으니 위치만 담음.
**float가 long이김(실수가 항상 정수이기게 되어있음. 실수 > 정수 메모리 크기에 상관없이)
리터럴(Literal) : 기본으로 int, double, string, false로 잡혀있다. 처음 초기기본값
int가 가장 빠르게 연산됨.
-문자리터럴의 표기방법
\t : 수평탭
\n : 줄바꿈문자
-4장. 연산자
논리연산자
&,/,!(not)는 기억하기
-& : 앞에 false값이면 뒤에값 연산함.
-&& : 앞에 false값이면 뒤에값 연산안함.
-/ : 앞에 true값이면 뒤에값 연산함.
-// : 앞에 true값이면 뒤에값 연산안함.
★삼항연산자
-조건식? 식1 : 식2
연산자가 복잡해지면 우선순위를 괄호로 하기(가독성이 훨씬 좋아짐)
String n2 = "123";
int n3 = Integer.parseInt(n2);//문자열을 정수형으로 변환
int n4 = n3 + 10;
System.out.println(n4);
->결과값 : 133
sc.nextLine(); //id 입력받기위해
System.out.println("id:");
String m_id = "dolsam77";
String id = sc.nextLine();
if(id.equals(m_id.trim())) {
System.out.println("회원이군요.!!!");
}else {
System.out.println("누구입니까?");
}
--삼항연산자
int score = 85;
char grade = (score > 90)? 'A': ((score>80)?'B':'F');
System.out.println(grade);
★★오늘 배웠던 것 중에 중요한 것
데이터형 -> 형변환
지역변수 특징 이유
연산자 : 삼항연산자, %, 증감자, 복합대입연산자(+=), AND OR연산자 , 비교연산자(==,!=)
equals, parselnt
Scanner
-2장. 자바의 기초 문법
<조건문>
if 조건문
if(num1>num2 && num1>num3)
sysout.
if(num1>num2)
if(num1>num3)
sysout
위의 두개가 같은문장
else if = switch 전환가능
if -elseif문 쓸때 범위를 점차 아래로 내려갈수록 확장시키며 코드 작성
if에 가장 작은범위 그다음 else if에 중간범위, 마지막 else에 큰범위
//국어, 영어, 수학 점수를 입력받아
//총점과 평균을 출력하자!
Scanner sc = new Scanner(System.in);
System.out.println("국어점수:");
System.out.println("수학점수:");
System.out.println("영어점수:");
char grade;
int kor = sc.nextInt();
int math = sc.nextInt();
int eng = sc.nextInt();
int sum = kor+math+eng;
int ave = (int)(sum/3.0);
if(ave>=90) {
grade = 'A';
}else if(ave>=80) {
grade = 'B';
}else if(ave>=70) {
grade = 'C';
}else {
grade = 'F';
}
System.out.println("총점: " + sum);
System.out.println("평균: " + ave);
System.out.println("학점:" + grade);
-else if문 : 범위따질 때 사용
-switch문 : 딱 나눠떨어질 때 사용, case별로,1~4사분기
switch (식)에 정수, char, string까지 쓸 수 있음.
break : 하나의 case를 실행하기 위해, 하나의 case를 묶기 위해
주석처리하는법 : 부분잡고 ctrl + /, "/* */"
switch(ave/10){
case 10 :
case 9 :
grade = 'A';
break;
case 8 :
grade = 'B';
break;
case 7 :
grade = 'C';
break;
default :
grade = 'F';
}
*마지막 내가 짠 코드
//키보드로부터 id, pass입력을 받아서
//id, pass 일치하면 => 로그인 성공
//id 불일치 => 해당 아이디가 존재하지 않습니다.
//pass 불일치 => 비밀번호가 일치하지 않습니다.
String m_id = "kosta";
String m_pass = "1234";
Scanner sc = new Scanner(System.in);
System.out.println("id를 입력해주세요: ");
String id = sc.nextLine();
System.out.println("pass를 입력해주세요: ");
String pass = sc.nextLine();
if(id.equals(m_id)) {
if(pass.equals(m_pass)) {
System.out.println("로그인 성공!!");
}
else {
System.out.println("비밀번호가 일치하지 않습니다.");
}
}else if(pass.equals(m_pass)) {
System.out.println("해당 아이디가 존재하지 않습니다.");
}else {
System.out.println("비밀번호가 일치하지 않습니다.");
System.out.println("해당 아이디가 존재하지 않습니다.");
}
}
}
*강사님이 짠 코드
if(id.equals(m_id) && pass.equals(m_pass)) {
System.out.println("로그인 성공");
}else {
if(!id.equals(m_id)){
System.out.println("해당 아이디가 존재하지 않습니다.");
}else {
System.out.println("비밀번호가 일치하지 않습니다");
}
}
'FULLSTACK > JAVA' 카테고리의 다른 글
JAVA 5차시 - Call by value, Call by reference, 유클리드 호제법(최대공약수 만들기), 재귀함수, arraySort, 선택정렬 (0) | 2020.11.12 |
---|---|
JAVA 주말과제 및 복습 - Mission 6,7,8 & 중복for문 연습 (0) | 2020.11.12 |
JAVA 4차시 - 2차원배열, 중첩for문, 배열의 복사 (0) | 2020.11.12 |
JAVA 3차시 - IF, SWITCH, WHILE, FOR, 1차배열 (0) | 2020.11.12 |
JAVA 1차시 - OT&자바실행키&형변환 (0) | 2020.11.12 |