728x90

 

변수 : 데이터를 담기 위해 사용(데이터의 종류가 달라져서 변수의 타입이 달라져야 함)   ->배열  -> 자료구조

변수의 선언 -> 메모리 할당 (주소값 참조변수) ->자바는 주소를 주소라 생각하기. 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("비밀번호가 일치하지 않습니다");  
            }                             
        }

 

 

 

 

 

 

 

 

728x90

+ Recent posts