'자바' 카테고리의 다른 글

PC 환경변수란?  (0) 2022.07.13
디자인 패턴 - 옵저버 패턴  (0) 2022.07.11
자바의 정석 연습문제 chap04-12 문제풀이  (0) 2022.07.08
자바의 정석 연습문제 풀이 3-1 중  (0) 2022.06.29
자바 protected 접근 제어자  (0) 2017.05.18
Posted by 세상을 살아가는 사람
,

다음과 같이 구구단을 출력하는 프로그램을 작성하여야 한다.

2*1=2	3*1=3	4*1=4	
2*2=4	3*2=6	4*2=8	
2*3=6	3*3=9	4*3=12	

5*1=5	6*1=6	7*1=7	
5*2=10	6*2=12	7*2=14	
5*3=15	6*3=18	7*3=21	

8*1=8	9*1=9	
8*2=16	9*2=18	
8*3=24	9*3=27

이를 위해서는 다음과 같은 반복문을 만족하도록 x와 y의 규칙을 정하여야 한다.

package chap04.verify;

public class Exercise4_12 {

	public static void main(String[] args) {
		for(int i = 1; i < 10;i++) {
			for(int j = 1;j <= 3;j++) {
				int x = ?;
				int y = ?;
				if(x == 10) {	// 10단은 제외
					break;
				}
				System.out.print(x + "*" + y + "=" + x * y + "\t");
			}
			System.out.println();
			if(i % 3 == 0) {
				System.out.println();
			}
		}
	}
}

이를 위해 i, j와 x, y의 관계표를 작성하면 다음과 같다.

i, j와 x, y의 연관관계를 분석해 보면 위와 같은 관계식이 도출된다.

이를 코드로 나타내면 다음과 같다.

package chap04.verify;

public class Exercise4_12 {

	public static void main(String[] args) {
		for(int i = 1; i < 10;i++) {
			for(int j = 1;j <= 3;j++) {
				int x = 3*((i-1)/3)+j+1;
				int y = (i % 3 == 0)? 3 : i % 3;
				if(x == 10) {
					break;
				}
				System.out.print(x + "*" + y + "=" + x * y + "\t");
			}
			System.out.println();
			if(i % 3 == 0) {
				System.out.println();
			}
		}
	}
}

실행결과는 다음과 같다.

'자바' 카테고리의 다른 글

디자인 패턴 - 옵저버 패턴  (0) 2022.07.11
디자인 패턴 -전략 패턴  (0) 2022.07.10
자바의 정석 연습문제 풀이 3-1 중  (0) 2022.06.29
자바 protected 접근 제어자  (0) 2017.05.18
자바 라벨 제어문  (0) 2017.05.12
Posted by 세상을 살아가는 사람
,

Posted by 세상을 살아가는 사람
,

다음 연산의 결과를 적으시오.

[연습문제] /ch3/Exercise3_1.java

class Exercise3_1 {
  public static void main(String[] args) {
    int x = 2;
    int y = 5;
    char c = 'A'; // 'A' 의 문자코드는 65
    System.out.println(1 + x << 33);
    System.out.println(y >= 5 || x < 0 && x > 2);
    System.out.println(y += 10 - x++);
    System.out.println(x+=2);
    System.out.println( !('A' <= c && c <='Z') );
    System.out.println('C'-c);
    System.out.println('5'-'0');
    System.out.println(c+1);
    System.out.println(++c);
    System.out.println(c++);
    System.out.println(c);
  }
}

 

- System.out.println(c+1);

  + c+1은 정수값이며, 이를 출력하면 66이 된다. 왜냐하면 char + int = int로 자동 형 변환되므로 int가 결과로 도출된다.

- System.out.println(++c);

  + ++c는 char가 되며, 'B'가 된다. 왜냐하면 CPU내에서는 int로 동작되지만 이 값이 char로 저장되어야 하며, 이를 출력하는 것이므로 'B'가 된다.

- System.out.println(c++);

  + c는 'B'이므로 'B'가 출력이 된다. 이후 c는 증가하여 'C'가 된다.

- System.out.println(c);

  + c가 'C'이므로 'C'가 출력된다.

Posted by 세상을 살아가는 사람
,

홍형경씨가 지은 "오라클 SQL과 PL/SQL을 다루는 기술"의 샘플 스키마를 설치하는데 책에 있는 것과 다르게 사용자의 권한을 부여하려다 보니 고민이 생겼다.

책에서는 사용자로 ora_user 계정을 만들어서 DBA 권한을 부여하고 있다.

그러나 나는 프로그래머가 DBA 권한을 가지는 것이 바람직하지 않아 다음과 같이 최소한의 권한만 부여하고자 한다.

우선은 책에 나와 있는대로 데이터베이스 tablespace를 생성하고, 사용자를 추가한다. 또한 권한도 DBA로 부여한다. 그리고나서 샘플 스키마를 초기화한다.

1. 초기화 파일을 C:\Temp 폴더에 복사

  - empall.dmp

  - empcust.dmp

2. cmd창을 띄운다.

3. C:\Temp 디렉토리로 이동

4. 초기화 실행

4.1 empall.dmp 초기화

  - C:\Temp> imp ora_user/ora_pass file=expall.dmp log=empall.log ignore=y grants=y rows=y indexes=y full=y

  - imp 수행하면서 생성된 log 파일을 첨부해 본다.

empall.log
0.00MB

4.2 empcust.dmp 초기화

  - C:\Temp> imp ora_user/ora_pass file=expcust.dmp log=empcust.log ignore=y grants=y rows=y indexes=y full=y

  - imp 수행 시 발생한 로그 파일을 첨부해 본다.

empcust.log
0.00MB

5. ora_user의 DBA 권한 회수

  - sql developer에서 dba 계정으로 수행

  - revoke dba from ora_user;

  - commit;

6. 일반 사용자 권한 부여

  - sql developer에서 dba 계정으로 수행

  - grant connect, resource to ora_user;
  - alter user ora_user quota unlimited on myts;

  - commit;

Posted by 세상을 살아가는 사람
,

몇 년만에 방문한 것 같다.
방문자가 적어 잘 이용하지 않았었다가 다시 사용을 더 적극적으로 해보려고 한다.

Posted by 세상을 살아가는 사람
,

2018.4월 현재 라즈비안 OS를 설치하기 위하여 최신의 NOOBS를 사용하면 Stretch OS가 설치된다.

라즈베리파이는 OS가 지속적으로 변경이 되고 있으며, OS의 버전에 따라 제공되는 기능의 동작이 틀려지고, 설정방법도 달라지고 있다. 따라서 자신의 라즈비안 OS가 어느 버전인지를 확안하고, 그에 따라 기능을 설정하여 주어야 한다.

라즈비안 OS 중 하나인 Jessie 버전을 설치하기 위해서는 NOOBS 2.4.2 버전 또는 NOOBS 2.4.3 버전을 사용하면 된다. 또한 라즈비안 OS 설치시 인터넷 연결을 하지 않은 상태에서 진행을 하여야 한다.

NOOBS의 특성상 인터넷이 연결되면, 인터넷에 연결하여 최신의 버전으로 설치한다. 따라서 NOOBS가 Jessie 버전을 가지고 있더라도 인터넷에 연결이 되어 있다면, 인터넷에서 다운로드를 하여 최신의 OS 버전인 Stretch가 설치가 된다. 따라서 Jessie 버전을 설치하려면 인터넷이 연결되지 않은 상태에서 OS 설치를 하여야 한다.

Posted by 세상을 살아가는 사람
,
protected 접근 제어자는 클래스에서는 사용을 하지않고, 멤버변수와 매소드에서 사용을 한다. protected를 선언한 클래스를 상속을 받은 클래스에게는 public으로 동작을 하고, 그외 클래스에게는 private로 동작을 한다.

Posted by 세상을 살아가는 사람
,

자바 라벨 제어문

자바 2017. 5. 12. 19:22
자바의 라벨 제어문은 continue와 break와 같이 연계하여 사용이 된다.
이중 반복문에서, 어떤 조건에서 이중 반복문을 벗어나거나 바깥쪽 반복문으로 벗어나도록 하기 위하여 라벨을 사용한다.

// Label을 이용한 continue문 프로그램 예제

public class LabelContinue {
    public static void main(String[] args) {
        jump: for(int x = 1;x <= 7;x++) {
            System.out.println("x 값 = " + x);
            for(int y = 1;y <= 5;y++) {
                System.out.println("y 값 = " + y);
                if(x <= 2)
                    continue jump;
                else if(x <= 4)
                    break jump;
                System.out.println("x = " + x + " : y = " + y);
            }
            System.out.println("x 값 = " + x);
        }
        System.out.println("프로그램 종료");
    }
}

실행 결과는 다음과 같다.

x 값 = 1

y 값 = 1

x 값 = 2

y 값 = 1

x 값 = 3

y 값 = 1

프로그램 종료

x 값이 2보다 작거나 같으면 바깥쪽 while 문으로 continue가 수행이 되고

x 값이 3일 경우 바깥쪽 while 문으로 break가 수행이 되어 while 문이 종료되고 프로그램 종료가 출력됨을 확인할 수 있다.

'자바' 카테고리의 다른 글

자바의 정석 연습문제 풀이 3-1 중  (0) 2022.06.29
자바 protected 접근 제어자  (0) 2017.05.18
utf-8로 저장된 자바 파일 에러 방지  (0) 2017.05.10
자바 super와 this  (0) 2017.04.06
자바 매소드 오버라이딩  (0) 2017.04.05
Posted by 세상을 살아가는 사람
,
메모장으로 Java 프로그래밍을 할 때 한글처리에 대한 어려움이 있다.
다음과 같은 프로그램을 메모장으로 작성하고

// 한글 주석을 가진 자바 프로그램
/* 주석 */

public class HelloJava {
  public static void main(String args[]) {
    System.out.println("첫 번째 자바 프로그램");
  }
}

메모장 저장 방법은 
파일 형식으로 "모든 파일"을 선택하고, 인코딩을 "UTF-8"로 선택한 후
파일이름을 "HelloJava.java"로 저장합니다.

그리고 나서 다음과 같이 compile을 하면

C:> javac -encoding utf-8 HelloJava.java

FirstJava.java:1: error: illegal character: '\ufeff'
?// 첫번째 자자 프로그램
^
1 error

와 같은 error가 발생한다.

그래서 다른 블로그 http://pk09.tistory.com/entry/Android-Studio-102-error-illegal-character-ufeff-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0를 참조하니

유니코드 BOM이라는 것을 파일 맨앞에 표시를 해주는데, 그것을 javac compiler가 인식하지 못해서 발생하는 것이라고 합니다.

그리고 해결방법은 다른 텍스트 에디터를 사용하라고 해서

wordpad로 작업을 해 보았습니다.


같은 문장을 작성한 후 저장을

파일 형식은 "유니코드 택스트 형식"으로 하고, 파일 이름을 "Hello.java"로 하여 저장한 후

C:> javac HelloJava.java로 compile을 하고

C:> java HelloJava로 실행하면 정상 수행된다.

'자바' 카테고리의 다른 글

자바 protected 접근 제어자  (0) 2017.05.18
자바 라벨 제어문  (0) 2017.05.12
자바 super와 this  (0) 2017.04.06
자바 매소드 오버라이딩  (0) 2017.04.05
자바 접근 제어자  (0) 2017.04.05
Posted by 세상을 살아가는 사람
,