Java_04 Java 2011. 10. 27. 18:20

* 전일 연산자 복습 : 관계연산자 유의할 부분 (자주 사용될만한 문구인진 모르겠지만..)
while (n++<10){
s+=n;
}System.out.printf(n+", "+s);
에서 n값을 10과 비교를 먼저 하고 값을 1증가한다.
n값이 10이 되어도 비교하고 값 1증가 후 빠져나와 n의 출력값은 11이 된다.
- 반복횟수가 명확하지 않을 땐 while문이 일반적이다.

* switch ~ case 문
- switch문으로 작성하는 모든 것은 if로 구현이 가능하다.
- 다중선택문 이라고도 하며 switch(수식)의 수식값에 따라 case의 상수값에 해당되는
  문장을 실행한다.
- break; 로 멈춰주지 않으면 switch문의 case가 끝날 때 까지 계속 실행 된다.
- case에 swith문의 수식을 만족하는 값이 없을 경우 default 내의 문장을 실행한다.
  (default값은 불필요시 빼도 관계 없고 위치 또한 각 문장끝 break; 가 기재되어 있다면 위치도 상관 없다)
- switch(n) : n에는 수식과 숫자, 문자 입력 가능
- case n : n에는 숫자, 문자 입력 가능(문자열은 입력할 수 없다)


- 예제: break문의 활용

  1. public class Test1
  2. {   public static void main(String[] args){
  3.     int a=3;
  4.     a=5;
  5.     switch(a){
  6.         case 3 : System.out.print("***");
  7.         break;
  8.         //break가 없을 때 break가 나오거나 switch문이 끝날 때 까지 계속 실행됨.
  9.         default:System.out.print("1~3이외의 수"); //default 위치는 어디에 있건 상관 없다.
  10.         break;   
  11.         case 2 : System.out.print("**");
  12.         break;
  13.         case 1 : System.out.print("*");
  14.         break;
  15.  
  16.     }System.out.println();

- 결과





- 예제 : 점수를 입력받아 학점 출력하기

  1. import java.io.IOException;
  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;
  4.  
  5. public class Test2{
  6.     public static void main(String[] args)throws
  7.         IOException{
  8.             BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  9.         int score;
  10.         char pan;
  11.  
  12.         System.out.print("점수? ");
  13.         score=Integer.parseInt(br.readLine());
  14.  
  15.         if (score>=0 && score<=100){ // 점수 범위 설정하려 한것..
  16.             switch(score/10){ // 점수를 10으로 나눈 몫, switch(조건식)가능
  17.             //조건식 없이 그냥 score쓰고 100,99,98.. 하려 했다니.. 잠이 덜깼나..
  18.                 case 10:
  19.                 case 9: pan='A'; break;
  20.                 case 8: pan='B'; break;
  21.                 case 7: pan='C'; break;
  22.                 case 6: pan='D'; break;
  23.                 default: pan='F';        
  24.             }
  25.             System.out.printf("%d : %c ",score,pan);
  26.         }
  27.     }
  28. }

- 결과






* do while 문
- 형식
: do{}안의 실행문을 선실행 1회 후 while(조건식)의 조건식을 나중에 비교하여 반복여부를 결정
do {
       // 실행문;
} while(조건식);

- 예제 : 1~10까지의 합 구하기 / while문의 실행순서 / do while문의 실행순서

  1. public class Test3
  2. {   public static void main(String[] args){
  3.         int s=0, n=0;
  4.        
  5.         do{
  6.         n++;
  7.         s+=n;
  8.         }while (n<10);
  9.         System.out.println("결과 : "+s);
  10.        
  11.         n=10;
  12.         while (n<10){ // 조건을 만족하지 않으면 한번도 실행되지 않는다.
  13.             n++;
  14.         }
  15.         System.out.println("while n: "+n);
  16.  
  17.         n=10;
  18.         do { // 적어도 한번은 실행한다.
  19.             n++;
  20.         }while(n<10);
  21.         System.out.println("do~while n: "+n);
  22. }   
  23. }

- 결과






- 예제 : 한 수를 입력하여 1부터 그 수까지의 합을 구하라는연예인

  1. import java.io.IOException;
  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;
  4.  
  5. public class Test4
  6. {   public static void main(String[] args)throws
  7.  
  8.         int num, s, n;
  9.         // 수 입력 받기
  10.         do
  11.         {System.out.print("수? ");
  12.         num=Integer.parseInt(br.readLine());
  13.         }
  14.         while (num<1 || num>100); // 범위를 벗어났을 때 → do{@_@}의 @_@ 실행
  15.         // 반복횟수가 명확하지 않을땐 while을, 명확할땐 for문을 주로 쓴다.
  16.    
  17.         // 합 구하기
  18.         s=0; n=0;
  19.         while(n<num){
  20.             n++;
  21.             s+=n;
  22.         }
  23.         System.out.printf("1~%d까지의 합 %d ", num,s);
  24.     }
  25. }

- 결과






* for 문

- 반복횟수가 정해진 반복문일 경우 유용하게 사용된다.(수학적 계산에 유리)

- 형식
for (n=1; n<=100; n++){
       s+=n;
     }
for (초기값; 조건값; 증감값)

- 예제 : 초기값과 증감값에는 콤마(,)로 구분하여 두개의 값이 입력이 가능하나 일반적이지 않다.

  1. int n,s;
  2. // 아래의 형식이 아닌경우 for다음에 ;이 붙으면 결과가 나오지
  3. // 않으므로 주의해야 함
  4. for (n=1,s=0; n<10; s+=n,n++); // 조건식에만 ,이 들어가지 못한다
  5. System.out.println("합 : "+s); // 이형식은 권장하지 않음..그냥 알아두라고



- 예제 : for문 안에서 선언된 변수는 외부에서 사용불가하다.

  1. int s=0;
  2. for(int n=1; n<=100; n++){ // for문 안에서도 초기값으로 변수값 형선언 가능
  3.     s+=n;
  4. }
  5. // System.out.println("n:"+n+",합 : "+s); // 오류
  6. // for에서 선언된 변수는 외부에서 사용불가!!
  7. // for 안에서만 사용 가능
  8. System.out.println("합 : "+s);


- 예제 : for문 안에서 선언된 변수의 초기값이 반복문의 조건에 항상 참일 때 무한루프에 빠진다. 

  1. int i,j;
  2. for(i=1; i<=5; i++){
  3.     // i=3; // 무한루프∞에 빠짐
  4.     for(j=1; j<=4; j++){
  5.         System.out.println("*");
  6.     }
  7. }
  8. System.out.println(i);


- 예제 : * 로 삼각형 모양 만들기.

  1. int i,j;
  2. for(i=1; i<=5; i++){
  3.     for(j=1; j<=5-i; j++){
  4.         System.out.print(" ");
  5.     }
  6.     for(j=1; j<=i*2-1; j++){ // j<=i 일때 오른쪽이 직선, *이 삼각형 모양으로 되기 위해
  7.         // 1, 3, 5, 7, 9.. 식으로 가려면 i값은 1,2,3,4,5.. 식이므로 1,3,5,7,9..가 되기 위한
  8.         // 조건식을 찾으라는 말, 1*2-1=1, 2*2-1=3....
  9.         System.out.print("*");
  10.     }
  11.     System.out.println();
  12. }

- 결과



- 예제 : 역삼각형 만들기

  1. int i,j;
  2. for(i=5; i>=1; i--){
  3.     for(j=1; j<=5-i; j++){
  4.         System.out.print(" ");
  5.         }
  6.     for(j=1; j<=i*2-1; j++){ //
  7.         System.out.print("*");
  8.     }
  9.     System.out.println();   
  10. }


- 예제 : while문 for문 if문 활용

  1. import java.io.*;
  2.  
  3. public class Test7{
  4.     public static void main(String[] args)throws
  5.  
  6.         int num, s;
  7.         char ch;
  8.  
  9.         while(true){ // 무한루프
  10.             do{
  11.                 System.out.print("원하는 수? ");
  12.                 num=Integer.parseInt(br.readLine());
  13.             }while(num<1 || num>1000);
  14.            
  15.             // 1에서 입력받은 수까지의 합을 구한다.
  16.             s=0;
  17.             for(int i=1; i<=num; i++)
  18.                 s+=i;
  19.             System.out.printf("1~%d 합 : %d ",num,s);
  20.  
  21.             // 합을 계속 구할지 물어본다.
  22.             System.out.print("계속 하시겠습니까?[Y/N] ");
  23.             ch=(char)System.in.read();
  24.             System.in.skip(2); // 엔터를 버림
  25.  
  26.             if(ch!='y' && ch!='Y')
  27.                 break; // while(true) 문을 빠져나간다.
  28.         }
  29.     }
  30. }

- 결과






* break : 속해있는 brace(중괄호)의 while, do~while, for, switch 문을 빠져나감

* continue : 속해있는 brace의 while, do~while, for 문을 빠져나감

* 네이블

  1. int a=0,b=0;
  2.  
  3.     jump: // 네이블이름은 엿장수 마음대로
  4.     while(true){
  5.         a++;
  6.         b=0;
  7.         while(b<3){
  8.             if(a>3)
  9.                 break jump; // 네이블 밑에 있는 문장을 빠져나가라
  10.             b++;
  11.             System.out.println(b);
  12.         }
  13.     } // while(ture)_end



* 문제1) : 1*2*3*....*10의 결과 구하기

  1. public class Test9{
  2.     public static void main(String[] args){
  3.    
  4.     int i=0,n=1,a=0;
  5.  
  6.     for (i=1; i<=10; i++)
  7.     {
  8.         n*=i;   
  9.     }
  10.     System.out.print(n);
  11.     }
  12. }


(소스 보고 공부하기..)

* 문제2) : 어떤 수를 입력받아 그 수가 소수인지 판별하기
소수 : 자기자신으로만 나누어지는 수(단, 1은 소수가 아님)

(소스 보고 공부하기..)

* 문제3) : 두 수를 입력 받은 후 작은수에서 큰수까지의 합 구하기

(소스 보고 공부하기..)

* 문제4) : 정수를 입력받아 입력받은 정수의 자릿수 구하기

(소스 보고..)

* 문제 5) 1~100까지 수중 3,6,9가 들어있는 수는 *를 출력하고
그렇지 않으면 수를 출력한다. 단 한줄에 10개씩 출력

(소스 보고..)

* 문제 6) 구구단을 다음과 같이 출력한다.
2*1=2 3*1=3 4*1=4 5*1=5
2*2=4 3*2=6 4*2=8 5*2=10
    :
2*9=18 3*9=27 4*9=36 5*9=45

6*1=6 7*1=7 8*1=8 9*1=9
  :

(소스 보고..)


* 과제) 자판기 만들기

(공부)

 

 

 

 

 

 

 


 

'Java' 카테고리의 다른 글

Java_06  (0) 2011.10.31
Java_05  (0) 2011.10.29
Java_04  (0) 2011.10.27
Java_03  (0) 2011.10.26
Java_02  (0) 2011.10.25
Java_01  (0) 2011.10.24
Java_03 Java 2011. 10. 26. 20:47

* 연산자 : 변수나 상수에 연산을 위해 사용

- 단항 연산자 : 피연산자가 하나인 연산자

- 이항 연산자 : 연산을 위해 두개의 항이 필요한 연산자

- C는 안되지만 double형과 float형에서는 %연산이 가능하다.

- 산술연산 : 최소가 int형이고 short에서는 안된다.

- 부호연산자 : 단항연산자이며 + - 같은 부호를 뜻한다.

- 증감연산자 : 변수의 값을 1증가 혹은 1감소 시킨 후 그 값을 다시 변수에 저장

증감연산자 예제)

  1. public class Test2{
  2.     public static void main(String[] args){
  3.         int a=10, b=0;
  4.  
  5.          b=a++; // → b=a; a=a+1 : 후위 증가 연산자
  6.         // b=++a; → a=a+1; b=a : 전위 증가 연산자
  7.        
  8.         // ++a; → 전위 증가 연산자
  9.         // a++; → 후위 증가 연산자
  10.  
  11.         //    11    12    13(14) 13
  12.         // b= ++a + ++a + a++ + ++a;
  13.         // 49.. C에서는 52(13*4)가 나온다..
  14.         // 언어에 따라 다르다. ++수식을 남용하지 말라.
  15.         // 일단 머리 아프니까. ∴b=몰라도 된다
  16.         // 단일로는 많이 쓴다.
  17.  
  18.         System.out.println("a:"+a);
  19.         System.out.println("b:"+b);  
  20.     }
  21. }

증감연산자 예제의 결과)
a:10
b:11

- 관계연산자 : true / false값 반환

- 동등연산자 : = 한번은 대입연산 / == 두번은 같다는 의미
관계연산자/동등연산자 예제)
  1. public class Test2{
  2.     public static void main(String[] args){
  3.  
  4.         int a=10, b=10, c=20;
  5.         System.out.printf("a:%d,b:%d,C:%d ",a,b,c);
  6.  
  7.         System.out.println("a>c:"+(a>c));
  8.         System.out.println("a<c:"+(a<c));
  9.         System.out.println("a==b:"+(a==b));
  10.         System.out.println("a!=b:"+(a!=b));
  11.         System.out.println("a>=b:"+(a>=b));
  12.         System.out.println("a==c:"+(a==c));
  13.     }
  14. }
관계연산자/동등연산자 예제의 결과)
a:10,b:10,C:20
a>c:false
a<c:true
a==b:true
a!=b:false
a>=b:true
a==c:false

- 논리연산자
  · && : 논리곱, 둘다 만족시 true, 하나만 만족하거나 둘다 만족하지 않을 시 false
  · || : 논리합, 둘중 하나라도 만족시 true, 둘다 만족하지 않을 시 false

- 논리부정연산
  · ! : 논리부정, NOT

- 조건 연산자 : 조건식이 true일 때 '값1'을 변수에 대입하고 false일 때 '값2'를 대입한다.
  · 변수 = 조건식? 값1 : 값2
  · 주로 삼항연산자라고 불리우며 자주쓰인다.
삼항연산자 예제1)
  1. import java.io.IOException;
  2.  
  3. public class Test3 {
  4.     public static void main(String[] args)throws
  5.     IOException{
  6.     // 문자를 입력 받아 대문자이면 소문자로 변환하고
  7.     // 그렇지 않으면 그대로 출력하는 프로그램
  8.  
  9.     char ch, conv;
  10.  
  11.     System.out.print("한문자?");
  12.     ch=(char)System.in.read();
  13.  
  14. //  conv=ch>='A'&&ch<='Z'? (char)(ch+32) : ch;
  15. // 대문자A:65, 소문자a:97 - 32차이
  16.  
  17.     // 대→소, 소→대, 기타 그냥 출력
  18.     conv=ch>='A'&&ch<='Z'? (char)(ch+32) :
  19.     (ch>='a'&&ch<='z'?(char)(ch-32):ch);
  20.  
  21.     System.out.printf("%c → %c ", ch, conv);
  22.     }
  23. }
삼항연산자 예제1의 결과)
한문자?a
a → A
한문자?A
A → a

삼항연산자 예제2)
  1. // 정수를 입력받아 짝수인지 홀수인지 판별
  2.  
  3. import java.io.IOException;
  4. import java.io.BufferedReader;
  5. import java.io.InputStreamReader;
  6.  
  7. public class Test4{
  8.     public static void main(String[] args)throws
  9.     IOException{
  10.         BufferedReader br=new BufferedReader(
  11.         new InputStreamReader(System.in));
  12.         int n;
  13.         String s; // 문자열
  14.  
  15.         System.out.print("정수? ");
  16.         n=Integer.parseInt(br.readLine());
  17.  
  18.         s=n%2==0? "짝수" : "홀수";
  19.  
  20.         System.out.printf("%d → %s ",n,s); //%s문자열
  21.     }
  22.  
  23.        
  24. }
삼항연산자 예제2의 결과)
정수? 11
11 → 홀수

삼항연산자 예제3)
  1. // 정수를 입력받아 짝수인지 홀수인지 판별
  2.  
  3. import java.io.IOException;
  4. import java.io.BufferedReader;
  5. import java.io.InputStreamReader;
  6.  
  7. public class Test4{
  8.     public static void main(String[] args)throws
  9.     IOException{
  10.         BufferedReader br=new BufferedReader(
  11.         new InputStreamReader(System.in));
  12.         int n;
  13.         String s; // 문자열
  14.  
  15.         System.out.print("정수? ");
  16.         n=Integer.parseInt(br.readLine());
  17.  
  18.         s=n%2==0? "짝수" : "홀수";
  19.  
  20.         System.out.printf("%d → %s ",n,s); //%s문자열
  21.     }
  22.  
  23.        
  24. }
삼항연산자 예제3의 결과)
년도? 2012
2012 년도 → 윤년

- 비트 단위 연산자
  · 비트 단위 : 2진수로 풀어서 연산해서 비트단위라는 말이 나옴
  · ~ : 해당 비트단위를 반전
  · 쉬운예로 a=12 일때 b=~a 라면 b=-13

- 비트 단위 논리연산자 : 정수형 자료의 내부 2진수 값을 대상으로 논리연산 수행 (이항연산자)
  · AND : &  마스크연산 이라고도 하며 각 항의 값이 0과 1일 때 곱셈의 결과가 1일때 참
             값을 없앨 때 사용한다 해서 마스크 라는 말이 붙었는지도..?
  · OR : |  각 항의 값이 0과 1일 때 덧셈의 결과가 1일 때 참
  · XOR : ^  각 항의 값이 0과 1일 때 서로 다른 값일 때 참
             기초연산 → a=13; 
                              a=a^27;  
                              a=a^27;
                              a=13;
XOR ^ 예제)
  1. /*
  2. 세 수를 입력받아 크기 순으로 나열하기(적은수-큰수 순)
  3. 첫번째수? 10
  4. 두번째수? 5
  5. 세번째수? 7
  6. 5 7 10
  7. */
  8.  
  9. import java.io.IOException;
  10. import java.io.BufferedReader;
  11. import java.io.InputStreamReader;
  12.  
  13. public class Test10{
  14.     public static void main(String[] args)throws
  15.     IOException{
  16.         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  17.  
  18.         int a,b,c,temp;
  19.  
  20.         System.out.print("첫번째수? ");
  21.         a=Integer.parseInt(br.readLine());
  22.         System.out.print("두번째수? ");
  23.         b=Integer.parseInt(br.readLine());
  24.         System.out.print("세번째수? ");
  25.         c=Integer.parseInt(br.readLine());
  26.  
  27.         if (a>b)
  28.         { temp=a;
  29.         a=b;
  30.         b=temp; // 빈컵에 a를 담고 a컵에 b를 담고 b컵에 빈컵에 들어있는 a값을 넣는다.
  31.         /*
  32.         a=a^b;
  33.         b=b^a;
  34.         a=a^b;
  35.         */   
  36.         }
  37.         if (a>c)
  38.         { temp=a;
  39.         a=c;
  40.         c=temp;
  41.         }
  42.         if (b>c)
  43.         { temp=b;
  44.         b=c;
  45.         c=temp;
  46.         }
  47.  
  48.         System.out.printf("%d %d %d ", a,b,c);
  49.     }
  50.  
  51. }
XOR ^ 예제의 결과)
첫번째수? 18
두번째수? 17
세번째수? 16
16 17 18

- shift 연산자 : 비트값을 알아낼 목적
  · a=32>>3 → 32÷23 나눗셈 응용, 이동으로 생긴 왼쪽 자리는 부호로 채움
  · a=32<<3 → 32×23 곱셈 응용, 이동으로 생긴 오른쪽 자리는 0으로 채움
  · >>> → 우측으로 이동하고 이동으로 생긴 왼쪽 자리는 0으로 채움

- 대입연산자 : = 의 우측의 값을 좌측에 대입한다는 의미로 쓰인다.
  · =, +=, -=, *=, /=, %= 등이 있다.

- 형변환 : 캐스팅
  · 묵시적 형변환 : a=3.14d + 3.14d
  · 명시적 형변환
    float a;
    int r;
    a = (float)r * r * 3.14f;





문제 1. (첨부파일 휠클릭하여 새탭으로)
1/2 + 2/3 + 3/4 ~ 9/10 의 합 출력


문제 2. (첨부파일 휠클릭하여 새탭으로)
어떤수를 입력받아 입력 받은 수까지의 정수합
원하는수? 20
20까지의합 : 210

문제 3. (첨부파일 휠클릭하여 새탭으로)
1~100 까지의 합을 구하되 수가 10의 배수가 될때마다 합출력
1~10 : 55
1~20 : 210
  :
1~100 : 5050

문제4. (첨부파일 휠클릭하여 새탭으로)
1+(1+2)+(1+2+3)+....+(1+2+3..+10) 의 합 출력

문제5. (첨부파일 휠클릭하여 새탭으로)
어떤수를 입력 받아 입력 받은 수까지의 3의 배수의 개수는?
어떤수? 10
3의배수의 개수 : 3

추가문제6. - 본문 예제
while문과 증감연산자를 이용한 반복문


추가문제7.
사람의 성향을 거의 정확하게 판단할 수 있는 프로그램
(문자열을 입력받아 출력)


문제8.
...
문제9.
...
문제10.
...

'Java' 카테고리의 다른 글

Java_06  (0) 2011.10.31
Java_05  (0) 2011.10.29
Java_04  (0) 2011.10.27
Java_03  (0) 2011.10.26
Java_02  (0) 2011.10.25
Java_01  (0) 2011.10.24
Java_02 Java 2011. 10. 25. 19:15

1. 프로그램 구성 요소

  • 키워드(keyword) : 예약어라고도 한다. Java자체에 미리 정의된 단어들. 다른목적으로 사용 불가
  • 식별자 : 변수명, 메소드, 클래스명. 사용자에 의해 정의된다. 언더바는 영어로 구분되고 대문자와
    소문자는 다른 변수로 구분되고 첫 글자로는 유니코드자바레터(알파벳,_,$)와 각국언어로 가능하나
    영어로 시작함이 일반적이다. 시작 글자로 괄호나 하이폰(-)은 금지.
  • 리터럴 : 고정되어 있는 값. 쉽게 말해 상수
  • 외에 연산자, 주석, 컴마, 괄호, dot, 배열, 세미콜론(문장과 문장사이 구분, 스페이스/탭) 등이 있다.


2. 자바의 기본 자료형

  • 논리형
    • boolean : C언어를 예로 참과 거짓을 1과 0으로 표현하지 않고 true 와 false의 값만 갖는다
      (1Byte)


  • 정수형
    • byte : 1Byte=8bit, 2진수로 보면 7칸의 숫자와 1칸의 부호를 의미하는 값을 가지고 있다.
      부호를 의미하는 첫번째 숫자를 부호와 절대치 라고 한다는 것 같다.

      ■ □ □ □ □ □ □ □ → ■ 이 양수의 값을 취할때 0 / 음수의 값을 취할때 1
      7  6  5  4  3  2  1  0 → 2의 제곱 표시 : 최대값은 27-1 이므로 0 1 1 1 1 1 1 1 = 127 이며
      음의 최대값은 1 0 0 0 0 0 0 0 = -128 으로
      표현범위는 -128 ~ 127 이 된다. 나머지도 이런식
    • char : C언어를 또 예로 들자면 char형은 1byte이다. 하지만 Java에서는 유니코드로
      char형의 값을 표현하기에 유니코드 문자 한글자당 2byte로 char형 또한 2byte가 된다
      부호없는 정수, 0부터 표현 하는 값 대입
    • short : 2byte, 범위는 -32,768 ~ 32,767
    • int : 4byte, 범위는 -2,147,483,648 ~ 2,147,483,647 (대략 21억정도)
    • long : 8byte, -263 ~ -263-1 엄청 큼......;;

 

3. 기본 입출력 스트림

  • 스트림
    • 먼저 입력된 data가 먼저 출력되는 자료구조
    • 뜻은 흐르는 물이라는 뜻, 단방향으로 수도파이프 구조, FIFO구조라고도 함
    • 지연될 수 있음


  • 바이트 스트림
    • InputStream, OutputStream 클래스와 하위 클래스로 구현
    • 8비트 크기를 갖는 바이트들의 스트림


  • 문자 스트림 
    • 입력되는 모든 data는 문자 이며 숫자로 식별되는 것도 변환시킬뿐 사실은 문자
    • Reader, Writer 클래스와 하위 클래스로 구현
    • 16비트 유니코드 문자들의 스트림


  • System.out : 표준 출력 스트림
  • System.in : 표준 입력 스트림
  • System.out.println() : 출력 후 새로운 라인 생성(엔터)
  • System.out.print() : 괄호안의 해당값 출력
  • System.out.printf() : 서식문자와 전달인자가 포함되어 괄호안의 따옴표내에 서식문자의 값이 출력



문제1) 가로와 세로를 입력 받아 사각형 넓이와 둘레 구하기


문제2) 반지름을 입력 받아 원의 넓이와 둘레 구하기. 단, 반지름은 정수로 입력받고 넓이와 둘레는 실수

 





 

금일 실습 예제





  1. public class Test1{ 
  2.     public static void main(String[] args){
  3.        
  4.         int a,b,c; // 정수형 변수를 선언
  5.         // int a;      int b;  int c; // 따로따로 변수 선언
  6.         // int a=20, b=10, c; // 변수선언과 동시에 초기화
  7.  
  8.         a=10;
  9.         b=20;
  10.         c=a+b;
  11.  
  12.         // System.out : 표준 출력(모니터)
  13.  
  14.         System.out.print("결과 : ");
  15.         System.out.print(c);
  16.         System.out.print(" ");
  17.        
  18.         // System.out.println("결과 : " + c);
  19.         // println : 한줄 출력후 엔터
  20.  
  21.         // 한줄 주석
  22.         /*
  23.            여러줄 주석
  24.            여러줄 주석
  25.            여러줄 주석
  26.         */
  27.     }
  28. }




  1. public class Test2 {
  2.     public static void main(String[] args){
  3.         /*
  4.         byte a=10, b=5, c;
  5.         // byte d=128; // error : overflow(값이 넘침)
  6.         // c=a+b; // error : overflow 미리 감지...?
  7.         c=(byte)(a+b); // (byte) : 형변환, 연산결과를 byte형으로 변환한다.
  8.         // byte형은 산술형(연산)의 용도라기 보다 이럴때 뭐하고 저럴때 뭐하고...
  9.         // 비교하는..blah blah
  10.  
  11.         System.out.println("결과 : "+ c);
  12.         */
  13.        
  14.         /*
  15.         int a=017, b=010; // 0이 붙으면 8진수로 인식 : a=15, b=8
  16.         int c=a+b;
  17.         System.out.println("a : "+a);
  18.         System.out.println("b : "+b);
  19.         System.out.println("결과 : "+c);
  20.         */
  21.  
  22.         /*
  23.         int a=0x17, b=0xa10; // 16진수 : x는 소문자이건 대문자이건 관계 없다
  24.         int c=a+b;       // 초기화 시킬때 많이 쓴다. 0x
  25.         System.out.println("a : "+a);
  26.         System.out.println("b: "+b);
  27.         System.out.println("결과 : "+c);
  28.         */
  29.  
  30.        
  31.         long a=10000000000L, b=10// 100억, 정수의 형태인 21억이상이 되어 L붙여줌
  32.                                     // 소/대문자 관계없다
  33.         long c=a+b;   
  34.         System.out.println("a : "+a);
  35.         System.out.println("b: "+b);
  36.         System.out.println("결과 : "+c);
  37.        
  38.     }
  39.  
  40. }





  1. public class Test3{
  2.     public static void main(String[] args){
  3. /*  float a=0;
  4.     double b=0;
  5.  
  6.     for(int i=1; i<=100000; i++){
  7.         a+=100000;
  8.         b+=100000;
  9.     }
  10.     a=a/100000;
  11.     b=b/100000;
  12.     System.out.println("a: "+a);
  13.     System.out.println("b: "+b);  */
  14.  
  15.     /*// ▽ 반지름이 10인 원의 둘레와 넓이
  16.     int a=10;
  17.     float b,c;
  18.     b=a*a*3.14f; // 3.14는 아무것도 안붙이면 배정도형실수 
  19.     c=a*2*3.14f; // float형 b,c 변수 선언으로 3.14도 단정도형으로 변환위해 f를 붙여줌
  20.     System.out.println("넓이 : "+b);
  21.     System.out.println("둘레 : "+c); */
  22.  
  23.     // 정수 연산자 정수 → 정수
  24.     // 정수 연산자 실수 → 실수
  25.     // 실수 연산자 실수 → 실수
  26.    
  27.     double a=1/2+1/2;
  28.     double b=1./2+1/2; // 1. 은 1.0 실수
  29.     double c=2/3*5+1./2; // 연산우선순위 파악 ①:/* ②:/ ③:①+②
  30.     System.out.println("a: "+a);
  31.     System.out.println("b: "+b);
  32.     System.out.println("c: "+c);
  33.    
  34.  
  35.     }
  36. }





  1. public class Test4{
  2.     public static void main(String[] args){
  3.         char a='a', b='z';
  4.         char c='A', d='Z';
  5.        
  6.         // 아스키코드 (기본암기)
  7.         // a~z: 97 ~ 122
  8.         // A~Z: 65 ~ 90
  9.         // Enter: 13(10), Esc: 27
  10.         // Alt+13(오른쪽키패드)=엔터, Alt+65=A
  11.         // 0: 48
  12.        
  13. /*
  14.         System.out.println(
  15.             a+":"+b+":"+c+":"+d);
  16.  
  17.         a=(char)(a+3); // 형변환(캐스팅)
  18.         System.out.println("a:"+a);
  19.  
  20.         System.out.println((int)a); // 코드값 출력을 위해
  21.         System.out.println((int)b); // int형으로 형변환
  22.         System.out.println((int)c);
  23.         System.out.println((int)d); */
  24. /*
  25.         System.out.print("java");
  26.         System.out.print(" "); // newline, Enter
  27.             // System.out.println("java"); // 위와 같다.
  28.         System.out.print("java "); // 위 두줄과 같다.
  29.  
  30.         System.out.print("java Framework Servlet"); // 는 Tab
  31.         System.out.println(" abcdefgxyz"); // 는 backspace */
  32.  
  33.         // 사용기피 클래스..
  34.         String s1="seoul";
  35.         String s2="korea";
  36.         String s3=s1+s2; // + : 문자열결합
  37.         // 문자열 + 정수 → 문자열
  38.         String s4=s3+40;
  39.         System.out.println(s1+" "+s2+" "+s3+" "+s4);
  40.     }
  41. }





  1. public class Test5
  2. {   public static void main(String[] args){
  3.         /*
  4.         int a=10, b=200;
  5.  
  6.         System.out.println("012345678901234567890123456789");
  7.  
  8.         // System.out.print("서식" + 값);
  9.         System.out.printf("a=%d b=%d%n",a,b); // %n은 printf에서만 사용하며 과 같다
  10.         // System.out.printf("a=%d b=%d ",a,b);
  11.         System.out.printf("%10d%10d%n",a,b); // 자리수 맞출때 쓴다. 일단위 기준
  12.         */
  13.  
  14.  
  15.         // 5page PrintStream클래스의 printf메소드 사용예
  16.         System.out.printf("%d %% %d = %d%n", 10,4,10%4);
  17.         System.out.printf("%10d%n", 123);
  18.         System.out.printf("%010d%n", 123);
  19.        
  20.         System.out.printf("%2$s %1$s %2$s ", "seoul","korea");
  21.         // 1$는 첫번째 값, 2$는 두번째 값
  22.  
  23.         System.out.printf("%1$tF %1$tT %1$tA ", java.util.Calendar.getInstance());
  24.         // 오늘 날짜 시간
  25. }
  26. }





  1. import java.io.IOException; // 예외
  2. public class Test6
  3. {   public static void main(String[] args) throws
  4.     IOException {
  5.         int ch;
  6.         System.out.print("한문자? ");
  7.  
  8.         ch=System.in.read(); // read(): 한문자를 입력받아 ASCII 코드를 반환
  9.  
  10.         System.out.println("ch : "+ch);
  11.         System.out.println("ch : "+(char)ch);
  12. }
  13. }





  1. import java.io.*; // 실무에선 * 절대 안쓴다고 함.. io 안에 있는 클래스 다 가져오란 소리
  2. // 무조건 외우장... 다
  3. public class Test7{
  4.     public static void main(String[] args)throws
  5.     IOException {
  6.         // new : 메모리 할당
  7.  
  8.         String name;
  9.         int kor, eng, tot, ave;
  10.  
  11.         System.out.print("이름?");
  12.         name=br.readLine(); // 엔터치기 전까지 한줄 입력 받는다.
  13.         System.out.print("국어?");
  14.         kor=Integer.parseInt(br.readLine()); // parseInt : 문자열을 숫자로 변환
  15.         System.out.print("영어?");
  16.         eng=Integer.parseInt(br.readLine());
  17.  
  18.         tot=kor+eng;
  19.         ave=tot/2;
  20.         System.out.printf("이름 : %s, 총점 : %d, 평균 : %d", name, tot, ave);
  21.     }
  22.  
  23. }


 




  1. // 문제 - 사칙연산 : +,-,*,/
  2. // 두 수를 입력받아 사칙연산을 하세요.
  3. // 실행 예)
  4. // 첫번째 수? 10
  5. // 두번째 수? 5
  6. // 10+5=15      10-5=5
  7. // 10*5=50      10/5=2
  8.  
  9. /*
  10. import java.io.*;
  11. public class Test8{
  12.     public static void main(String[] args)throws
  13.     IOException {
  14.         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  15.  
  16.        
  17.         int num1, num2, add, mi, gop;
  18.         double na;
  19.  
  20.         System.out.print("첫번째 수? ");
  21.         num1=Integer.parseInt(br.readLine());
  22.         System.out.print("두번째 수? ");
  23.         num2=Integer.parseInt(br.readLine());
  24.        
  25.  
  26.         add=num1+num2;
  27.         mi=num1-num2;
  28.         gop=num1*num2;
  29.         na=(double)num1/(double)num2; // 실수로 형변환
  30.        
  31.  
  32.         System.out.printf("%d + %d = %d ", num1, num2, add);
  33.         System.out.printf("%d - %d = %d ", num1, num2, mi);
  34.         System.out.printf("%d * %d = %d ", num1, num2, gop);
  35.         System.out.printf("%d / %d = %.1f ", num1, num2, na); // 값이 실수이므로 %f
  36.     }
  37. } */
  38.  
  39. import java.io.*;
  40. public class Test8
  41. {   public static void main(String[] args)throws
  42.     IOException {
  43.  
  44.         int a, b;
  45.  
  46.         System.out.print("첫번째수? ");
  47.         a=Integer.parseInt(br.readLine()); // 여기서 멈추는이유는 br.readLine()
  48.         System.out.print("두번째수? ");
  49.         b=Integer.parseInt(br.readLine());
  50.  
  51.         System.out.printf("%d+%d=%d ", a,b,(a+b));
  52.         System.out.printf("%d-%d=%d ", a,b,(a-b));
  53.         System.out.printf("%d*%d=%d ", a,b,(a*b));
  54.         System.out.printf("%d/%d=%d ", a,b,(a/b));
  55.         // System.out.printf("%d/%d=%f ", a,b,(double)a/b);
  56.         // 값이 실수로 나오게 하고 싶다면 △
  57.     }
  58. }




※ 종일 궁금했던 parseInt에 관한 확실한 정의(? 구글링)




....해보라고-_-

외워야 할 것들 ↗

'Java' 카테고리의 다른 글

Java_06  (0) 2011.10.31
Java_05  (0) 2011.10.29
Java_04  (0) 2011.10.27
Java_03  (0) 2011.10.26
Java_02  (0) 2011.10.25
Java_01  (0) 2011.10.24