728x90

2장. 자바의 기초문법

-IF조건문(범위로 나누어져 있을때)

-switch조건문 : 몇가지 케이스가 정해져있을때. (많은 범위x)

        (무한루프문) -while문, for문

-while반복문 : 세로구문임, 무한반복일때 주로 사용

배열 : 대부분 증가식 사용

감소식 - 별찍을때

-for문을 더 많이씀(가로구문이기 때문), 조건문일때 주로 사용

while과 for문 중에 자신이 원하는 것 사용

 

-while문

//int sum;을 메인메소드에서 선언해주었기 때문에 while문에서도 사용가능함.
자기혼자 증가하는 i++; ++i; 둘다 똑같음 상관없음.
//while : 초기식 -> 조건식 -> 명령문-> 증감식 : 수직구조   
		int sum=0;               
    	int i = 1;             
        while(i<=10) {         
        	sum +=i;            
            i++;               
            System.out.println("1에서 10까지의 합:" +sum);  //반복되는 과정을 다 보고싶을 때 
            }         
        }
    }               
    	int sum=0;   
        int i = 1;    
        while(i<=10) {    
        	sum +=i;          
            i++;             
        }                   
        System.out.println("1에서 10까지의 합:" +sum); //결과물만 보고싶을 때 
       	}
    }
     //구구단 7단 출력         
     //7*1 = 7        
     //7*2 = 14           
     
     int i = 1;           
     int sev;              
     
     while(i<=9) {        
     	sev = 7 * i;  
        System.out.println("7*"+ i + "=" + sev);  
        i++;        
     }    
     
     (te)//구구단 7단 출력   
     //7*1 = 7             
     //7*2 = 14                   
     
     int i = 1;              
     while(i<=9) {               
     	System.out.println("7*"+ i + "=" + 7*i);    
        i++;                    
     }
                //1부터 몇까지 더해야 100을 넘지 않는지 알아내는 예제      
                int i =0;                
                int sum=0;                
                while(sum<=100) {        
                	System.out.printf("%d - %d%n",i,sum);  
                    sum +=++i;   //전치증감자 사용해야함  
                }

답 : 0 - 0

     1-1

     ...

     13-91

//각자리수의 합을 구하는 문제       
int num = 0, sum = 0;            
System.out.println("숫자를 써라");   
Scanner sc = new Scanner(System.in); 
num = sc.nextInt();                   

while(num!=0) {                        
	sum += num%10;                     	
    System.out.printf("sum=%3d num=%d%n", sum, num);     
    num /=10;                   
}                    
System.out.println("각 자리수의 합:" + sum);

>>>숫자를 써라

11234

sum=  4 num=11234

sum=  7 num=1123

sum=  9 num=112

sum= 10 num=11

sum= 11 num=1

각 자리수의 합:11

 

-Do-while 반복문 : 조건을 실행하기 전에 꼭 먼저 한번은 실행하고 조건을 가져야 할때

 (내코드 안돌아강ㅠㅅㅠ)//do-while : 명령을 먼저 실행한 후 조건을 비교   
 //적어도 1번은 무조건 실행이 필요한 경우                            
 
 //키보드로부터 숫자를 입력받아 합을 구하자.                   
 //음수를 입력하면 새롭게 다시 입력을 받도록 하자.              
 Scanner scanner = new Scanner(System.in);       
 int i=0;                
 int sum=0;               
 do {                  
 	System.out.println("숫자를 입력해주세요^^");  
    i = scanner.nextInt();                   
    if(i<0) {                 
    	System.out.println("다시 입력해주시겠어요?^^");  
    }                                                
 }while (i>=0);                  
 sum += i;                   
 System.out.println("합은 :" + sum);   


 (Lecturer ver.) : do-while(음수아닐때까지 돌리는것)과 while(양수일때 더하기)구문을 사용함 
 Scanner sc = new Scanner(System.in);  
 int n=0;                           
 
 do {                              
 	System.out.print("숫자를 입력해주세요^^");     
    n = sc.nextInt();                     
    }while(n<=0); //n에 음수값을 입력하면 do문 무한반복      
    
 int sum = 0;                 
 int i=1;                  
 while(i<=n) {  //i가 n이 될때까지   
 	sum += i;                   
    i++;                   
 }                  
 System.out.println("1에서 " +n+ "까지의 합:"+sum);                              

>>>숫자를 입력해주세요: -5

숫자를 입력해주세요: 10

1에서 10까지의 합:55

       //2자리 숫자만 입력받아서 출력하세요     
       Scanner sc = new Scanner(System.in);          
       int n = 0;                             
       
       do {                              
          System.out.println("2자리 숫자만 입력해라.");  
          n = sc.nextInt();                    
       }while(n<10 || n>99);   
       System.out.println(n+"바르게쳤구나");

 

★for문

 

   //for문 : 초기식 -> 조건식 -> 명령문 -> 증감식 : 수평방향      
   		int sum = 0;        
        for(int i=1;i<=10;i++) {    
        	sum +=i;            
        }                  
        System.out.println("1에서 10까지의 합: " + sum);
for(int i=1;i<=9;i++) {            
	System.out.println("7*"+ i + "=" + 7*i);  
}
    //1~100 사이에 2의 배수 및 3의 배수가 아닌 숫자만 출력하세요.       
    for(int n = 0;n<=100;n++) {                           
    	if(n%2!=0 && n%3!=0)        
        System.out.println(n+",");
        ->끝에 콤마 출력안하려면 System.out.println((i==0)?""+n:", "+n);     
    }     
    
    (같은구문)                    
    for(int n = 0;n<=100;n++) {                         
    	if(n%2==0 || n%3==0)                             
        continue; (한문장까지는 대괄호 안해줘도 됨)  
        System.out.println(n+",");   
    }

 

-break문(탈출)

반복문에서 빠져나가기 위해 사용

-continue문(조건에 있는 실행문 건너뛰기)

아래에 있는 식을 실행하지 않고 다음번부터의 반복과정을 계속 진행.

-중첩 if문

  for(int i=1;i<=5;i++) {              
  	for(int j=1;j<=i;j++) {            
    	System.out.print("*");              
    }                           
 	 System.out.println();            
  }

>>>

*

 

**

***

****

*****

 

2장. 자바의 기초 문법

8할: IF문& 배열 2할 : 재귀함수

-배열

-★★배열의 선언, 생성, 이용

[](대괄호) : 배열 

배열은 레퍼런스타입

배열의 생성 : 많은 변수들을 넣기 위한 방을 생성한다.

배열의 특징 : 같은 데이터타입만 넣을 수 있다.

배열은 선언뿐만 아니라 생성을 해야함

int arr[];  , arr = new int[5];

배열을 생성 = 레퍼런스타입 (주소값을 넣기 위한 변수를 생성)

배열이름[인덱스];

                   //1. 배열선언, 생성 분리        
                   int arr[];//배열 선언 -> 주소값을 넣을 수 있는 변수생성   
                   arr = new int[5];//배열 생성 -> int형 변수 5개 생성. 생성된 주소를 arr에  대입 
                   
                   //2 배열선언. 생성 함께                  
                   int arr2[]= new int[5];              
                   
                   //3 배열선언, 생성, 초기화 함께              
                   int arr3[] = {1,2,3,4,5};             
                   
                   //for문을 이용해서 전체배열요소를 출력하자.       
                   for(int i=0;i<arr3.length;i++) {        
                   	   System.out.println("arr3[" +i+ "]=" + arr3[i]);      
                   }

>>>  arr3[0]=1

    arr3[1]=2

    arr3[2]=3

    arr3[3]=4

    arr3[4]=5

                    //1. 배열에 사용될 데이터타입은 무엇인가?

                    //2. 배열의 크기를 결정 =>초과사용 => ArrayIndexOutOfBoundsException

                    //3. 배열을 어떻게 초기화(직접인덱스, for문, 생성과 동시에)

                    //4. 배열에 있는 데이터 출력(for문, 향상된 for문)

**개발자 : 고객과의 커뮤니케이션이 필요하다

//구구단 7단의 결과를 배열안에 초기화 후 출력해 보자.       
int arr1[] = new int[9];                
for(int i=0;i<arr1.length;i++) { //배열의 시작은 0부터이다. 
	System.out.println("7*"+i+ "=" + 7*i);       
}                  

(강사님) int arr1[] = new int[9];    
for(int i=0;i<arr1.length;i++) {     
	arr1[i] = 7*(i+1);                   
    System.out.println("7*"+(i+1)+ "=" + arr1[i]); 
}

7*1=7

7*2=14

7*3=21

7*4=28

7*5=35

7*6=42

7*7=49

7*8=56

7*9=63

 

       Scanner sc = new Scanner(System.in);          
       
       System.out.println("국어점수:");         
       System.out.println("수학점수:");       
       System.out.println("영어점수:");       
       
       int sum = 0;        
       float ave = 0f;       
       int kor = sc.nextInt();   
       int math = sc.nextInt();    
       int eng = sc.nextInt();        
       
       int score[] = {kor, math, eng};         
       for(int i=0;i<score.length;i++) {       
           sum += score[i];           
       }                
       ave = sum/(float)score.length;          
       
       System.out.println("국영수의 총점은:" + sum);     
       System.out.println("국영수의 평균은:" + ave);         
       
       (강사님)Scanner sc = new Scanner(System.in);         
       int arr[] = new int[5];                        
       
       System.out.println("국어점수:");        
       arr[0] = sc.nextInt();       
       System.out.println("수학점수:");  
       arr[1] = sc.nextInt();       
       System.out.println("영어점수:");  
       arr[2] = sc.nextInt();        
       
       arr[3] = arr[0] + arr[1] +arr[2];       
       arr[4] = arr[3]/arr.length;        
       int sum = 0;       
       float ave = 0f;                   
       
       System.out.println("국영수의 총점은:" + arr[3]);    
       System.out.println("국영수의 평균은:" + arr[4]);
//문자열 배열을 생성 후 키보드로부터 데이터를 초기화 =>q누르면 결과값          
//배열 전체 내용을 출력                 
Scanner sc = new Scanner(System.in);                
String name[] = {};                   
int len = name.length;                  
name = new String[len];                   
char a = 'q';                   
int count = 0;                        

for(int i=0;i<name.length;i++) {     
	System.out.println("문자열을 입력해주시겠어요?");                 
    String input = sc.nextLine();                         
    name[count++]=input;                      
    if(input.equals(a)) break;            
for(int i=0;i<count;i++){              
	System.out.println(name[i] + ", ");  
}                            

(강사님)Scanner sc = new Scanner(System.in);   
String name[] = new String[10];            
int count = 0;                                 

while(true) {                             
	System.out.println("문자열을 입력해주시겠어요?");                        
    String input = sc.nextLine();                            
    if(input.equals("q")) break;                           
    	name[count++(변수)] = input; //count에 상수가 들어가면 덮어쓰기됨. 전치증감자쓰면x   
    }                                   
for(int i=0;i<count;i++) {             
	System.out.print(name[i] + ", ");        
}

문자열을 입력해주시겠어요?

ab

문자열을 입력해주시겠어요?

cd

문자열을 입력해주시겠어요?

q

ab, cd,

 

728x90

+ Recent posts