U E D R , A S I H C RSS

한자공/시즌3/20140707


1. 일시

  • 오후 12시 30분 ~ 오후 1시

2. 참가자

유재범 불참
최다인 참석
이지수 참석
김용준 참석
김정민 참석

3. 진행 상황

  • 김용준 학우의 발표
    • Java의 정석 - Chapter 2 ~ Chapter 4

3.1. 발표 내용

  • Java에는 C와 다르게 논리형 Boolean이 존재
    • bool과 BOOL의 차이
      • bool : 1byte 논리형. true와 false값 대입 가능. 0 or 1 대입 불가.
      • BOOL : 4byte int형이며, #define으로 TRUE 1 FALSE 0 이 전처리 되어있음. 실제로 컴파일러는 int형으로 인식.
    • while 조건문 안에 1 사용 불가!
  • char형같은 경우 유니코드를 사용하기 때문에 기본적으로 2byte
    • 상황에 따라 다를 수도 있음.
  • byte 자료형 : 1byte, 정수형 자료형.
  • String : 클래스형 자료형
    • String name = "java";
    • String name = new String("java");
  • 변수 값 출력방법
    • System.Out.Println("값은" + variable + "입니다");
      • 숫자같은 경우 " " 안에 적지 않아도 알아서 String으로 변환하여 출력
      • 문자는 안됨.

  • 반복문에 Label을 붙이면 중첩된 Loop를 한 번에 탈출할 수 있다.

outer_loop:
while (true) {
    while (true) {
        grade = scan.nextInt();
        if (grade < 0) {
            break outer_loop; }
        }
    ...
}
//move
이 경우 //move 위치로 이동.

4. 다음 진행

5. 과제

  • 2와 100 사이에 있는 모든 소수(prime number)를 찾는 프로그램을 작성하라. 주어진 정수 k를 2부터 k - 1까지의 숫자로 나누어서 나머지가 0인 것이 하나라도 있으면 소수가 아니다. - 출처 : Power JAVA 2판, CHAPTER 06, PROGRAMMING

5.1. 유재범

package hanjagonghomework;
public class Homework0707 {
	public static void main (String []ar) throws java.io.IOException{
		int count = 0;
		for(int num=3; num<=100; num++){
			int t;
			two : for(t=2; t<num; t++){
				if(num%t==0){
					break two;
				}
				else{
					continue two;
				}
			}
			if(num-t<=1){
				System.out.println(num + " ");
				count+=1;
			}
		}
		System.out.println("소수는 총" + count + "개 입니다.");
	}
}

5.2. 최다인

public class PrimeNumber{

     public static void main(String []args){
        int numOfPrime = 0, i, j;
        for(i = 2; i <= 100; i++) {
            for(j = 2; j < i; j++) {
                if(i % j == 0) break;
            }
            if(j == i) {
                numOfPrime++;
                System.out.print(i + " ");
            }
        }
        System.out.println("\n소수의 개수는 " + numOfPrime);
     }
}

5.3. 이지수


public class Jisu {
	public static void main(String[] ar){
		int num = 2, i;
	System.out.println("\nprime numbers between 1 and 100 are : ");	
	
	while(num <= 100){
		for(i=2; i<=num; i++){			
			if(num%i == 0 && i != num){
				num++;break;
				}
			if(i >= num-1){
				System.out.print(num + " ");
				num++;break;
				}
			}
		}
	System.out.println();
	}
}

5.4. 김용준


package assignment;

public class _20140707{
	public static void main(String[] args){
		boolean bool;
			for(int k=2;k<=100;k++){
				bool = true;
				for(int i=k-1;i!=1;i--){
					if(k % i == 0){
						bool = false;
						break;
					}
				}
				if(bool == true) System.out.println(k);
			}
	}
}
// 다이나믹 코딩을 이용
public static void main(String[] args){
		int []prime = new int [100];
		int j=0;
		boolean bool;
		
			for(int k=2;k<=100;k++){
				bool = true;
				for(int i=0;prime[i]>0;i++){
					if(k % prime[i] == 0){
						bool = false;
						break;
					}
				}
				if(bool == true){
					prime[j] = k;
					System.out.println(k);
					j++;
				}
			}
	}

5.5. 김정민

package study;

import java.lang.*;

public class study1 {
	public static void main(String[] args) {	
		boolean temp;
		for(int num = 2;num<=100;num++)
		{
			temp = true;
			for(int div_num = 2;div_num<num;div_num++)
			{
				if(num % div_num == 0)
					temp = false;
			}
			if(temp == true)
				System.out.printf("%d ",num);
		}
	}
}

6. 후기

  • ㅂㄷㅂㄷ하다. 저번에 내가 물어본건 다 혁준선배가 가르쳐주셨는데... - 김용준
    C언어에서 쓰던 printf가 System.out.printf 있음 확인.
    System.out.print((x+y))을 ()를 통해 x+y계산 가능, 이외의 연산도 가능함.
    System.out.println(2+0+0+2+"월드컵");
    //4월드컵 -> 오른쪽, 왼쪽 둘다 정수형 이므로 계산 후에 월드컵 문자형을 만나면 합침
    System.out.println("2"+0+0+2+"월드컵");
    //2002월드컵 -> 오른쪽 문자형 2와 정수형 0이 만나 정수형 0이 문자형이 되면서 합침
  • 아, 이런.. 용준이의 과제코드를 봐버렸습니다. - 김정민
  • 다이나믹 코딩을 해서 시간을 줄여봅시다! - 김용준
  • while(1)을 못하면 JAVA에서는 무한루프를 어떻게 거는거죠? - 유재범
  • 이제보니 김정민 true false로 했네 제일 신선하네 ㅋㅋㅋ - 유재범


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:30
Processing time 0.0196 sec