레이블이 JDK7인 게시물을 표시합니다. 모든 게시물 표시
레이블이 JDK7인 게시물을 표시합니다. 모든 게시물 표시

2013년 8월 8일 목요일

[ORACLEJAVA커뮤니티]자바 제어문, 반복문

이번 강좌에서는 자바의 제어문과 반복문에 대해 알아 보기로 하겠습니다.



오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  



1. 제어문(if else)

형식 :

if (boolean- 수식 ) 문장

if (boolean- 수식 ) 문장 else 문장



if문에 대해서는 별다른 설명이 필요 없을것 같습니다. (당연하죠^^)

[예제]

class IfTest {
public static void main( String args[] ) {
int i=3;
if (i%3 == 0)
System.out.println("3의 배수");
else if (i % 3 == 1)
System.out.println("3의 배수 + 1");
else
System.out.println("3의 배수 + 2 ");
}
}



[결과]

3의 배수



2. 제어문 (switch, case, break)

정수를 조건으로 해서 해당되는 실행문을 실행 하게 합니다. break 의 경우 자신을 둘러싸는 가가운 {} 를 벗어난 다음으로 실행 순서를 옮깁니다. default 는 case 로 명시하지 못한 정수 값 일때(이도 저도 아닐때)수행 되 는 겁니다.

[예제]

class SwitchTest
{
public static void main( String args[] )
{
func(1);
func(2);
}

static void func(int i)
{
switch( i % 3 )
{
case 0:
System.out.println( "3의 배수 " );
break;
case 1:
System.out.println( "3의 배수 + 1" );
default:
System.out.println( "3의 배수 + 2" );
}
}
}

[결과]
3의 배수 + 1
3의 배수 + 2
3의 배수 + 2

3. 제어문 (for, continue)

지정된 조건이 해당될 때까지 문장 ( 혹은 블록 ) 을 실행하는 반복문 입니다.For 문의 괄호 안은 3 가지 부분으로 나뉘어져 있는데 구 분 세미콜론 (;) 이며 첫번째 부분은 초기치 , 두 번째 부분은 조건 , 세번째 부분은 증감 부분 입니다.(다들 아시죠^^). 복잡한 다중 루프인 경우에는 label 을 사용하여 기존 언어의 goto문의 효과를 나타낼 수 있습니다.

continue 명령을 사용하면 그 이후부터 블록의 끝까지를 수행하지 않고(Skip해 버림) for 문이 있는 곳으로 제어를 이동 시킵니다. continue 에 label 을 기술하여 그 label 이후부터 다시 실행하게 할 수 있으며 Break 명령어의 경우도 label 을 써서 중첩된 구조를 빠져 나올 수 있으나 continue 와는 다르게 다음 반목 문을 수행하지 않습니다. For(;;) 의 경우 무한반복을 수행하며 빠져 나오기 위 해서는 별도의 조건을 이용하여 break 로 빠져 나옵니다 .

[예제]

//ForTest.java
class ForTest {
public static void main(String[] args) {
myLabel :
for(int i=0; i < 9; i++) { >
for(int j=0; j < 5; j++) { >
if (i % 2 ==0) {
System.out.println("continue myLabel");
continue myLabel;
}
else if (i == 5) {
System.out.println("break myLabel");
break myLabel;
}
System.out.println(i + " " + j);
}
}
}
}




[결과]
continue myLabel
1 0
1 1
1 2
1 3
1 4
continue myLabel
3 0
3 1
3 2
3 3
3 4
continue myLabel
break myLabel


4. 제어문 (while, do while)

‘ for ' 문과 마찬가지로 반복 수행을 가능하게 해주는 제어문 이며 지정된 조건이 참인 동안에 수행된다 .while문인 경우 만약 조건에 맞지 않다면 한번도 수행되지 않을 수 있지만 do~while문은 일단 한번 수행한 후 조건을 비교하므로 최소 한번은 수행한다는 것이 차이가 있습니다.

[예제]

//While.java
class While {
public static void main(String[] args) {
//1부터 10까지의 합을 구합니다.
int i=0, sum=0;
while(i<10) { >
i++;
sum += i;
}
System.out.println("while문으로 구한 합 : " + sum);

i=0; sum=0;
do
{
i++;
sum += i;
}while (i<10); >
System.out.println("do~while문으로 구한 합 : " + sum);
}

[결과]
while문으로 구한 합 : 55
do~while문으로 구한 합 : 55 

[ORACLEJAVA COMMUNITY, ORACLEJAVANEW.KR]자바, 식별자,자료형,주석

이번 강좌 부터는 기본적인 자바의 문법을 공부해 보도록 하겠습니다. 쉬운것이니 천천히 읽고 실습하시기 바랍니다. 먼저 주석에 대해 보자구요~


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  




주석 (comment)
Line comment : //
Block comment :

식별자
변수, 메쏘드, 클래스, 패키지 이름을 정하는데 사용합니다.
유니코드 자바 문자 또는 유니코드 숫자
A-Z a-z _ $ 혹은 다양한 국가의 문자 사용 가능 합니다.
길이에 제한이 없으며, 대소문자 구분 합니다.
시작은 반드시 유니코드 자바 문자로 시작 해야 합니다.

[원칙]
대소문자 구별
클래스 및 인터페이스의 이름은 대문자로 시작
변수 및 메소드의 이름은 소문자로 시작
두 단어 이상으로 구성 시 각 단어의 시작은 대문자

리터럴 (Literals)
리터럴이란 원시타입, 스트링 타입, 널 타입을 나타내는 소스 코드를 의미 합니다.
Integer Literal, Floating Point Literal
Boolean Literal, Character Literal, String Literal
Null Literal

흔히 수식에서 사용하는 “34”라는 값을 프로그램 내에서 그대로 표현하는 것을 말합니다.
String s = "korea" --> 문자 리터럴
int i=10; --> 숫자 리터럴

자바에서의 자료형


기본자료형
기본 자료형(원시자료형)
byte : 8비트, 2의 보수 (-128 ~ 127)
short : 16비트 (-32768 ~ 32767)
char : 16비트, 유니코드 (0 ~ 65535)
int : 32비트 (-2147483648 ~ 2147483647)
long : 64비트 (-9223372036854775808 ~ 9223372036854775807)
float : 32비트
double : 64비트
boolean : true, false
종류
void 자료형(원시자료형) --> 아무런 값도 반환하지 않는 메소드 정의에 사용
참조형--> 객체의 참조 값을 나타내는 자료형(포인터와 유사)
배열 참조형,클래스 참조형,인터페이스 참조형
변수 --> 해당 자료형의 값을 기억할 수 있는 기억 장소
참고 : 닷넷에서는 자바의 기본자료형을 Value-Type, 참조형을 Reference-Type이라고 부릅니다.
[예제 -- 기본자료형과 참조형의 차이]
//기본자료형과 참조형의 차이
public class Sample1 {
static int a=10, b=10; //a와 b는 기본자료형 이다.(스택에 저장)
public static void main(String[] args) {
System.out.println("초기상태 : a="+a+", b="+b); //여기서는 각각 10으로 나온다.
a=1; //a를 1로...
b=a; //a의 값을 b로 복사해서 넣는다. 즉 b가 1이됨
a=2; //다시 a를 2로...
System.out.println("b="+b); //b는 1
Sample1 s1, s2; //s1과 s2는 객체 참조형으로 메모리힙에 있는 개체를 참조하고(쳐다보고) 있는 것이다.
s1 = new Sample1(); //메모리 힙에 Sample1의 인스턴스를 생성하고 s1이라는 변수가 처다보고 있슴...(포인터 변수 처럼)
s2 = s1; //s1이 쳐다보는 것을 s2도 쳐다 봄(s1이 실제 가지고 있는 값은 주소이다.. 그 주소를 s2에 넣은니 이제부터
//s1과 s2는 같은 곳을 쳐다 보고 있는 것이다. 그림으로 그려보라~
s1.a = 10; //s1에 있는 a라는 변수를 10으로 값을 바꾸었으니 당연히 s1의 a도 값이 바뀌어져 있는 것이다.
System.out.println("s2.a="+s2.a);
}
}

[결과]
초기상태 : a=0, b=0
b=1
s2.a=10



2013년 8월 3일 토요일

[JAVA AWT CARDLAYOUT교육]자바 AWT 카드레이아웃 (cardlayout) 예제

지금은 많이 쓰이지 않지만 JAVA AWT(Abstract Window ToolKit)은 자바 윈도우 프로그래밍의 중요한 부분 입니다.  참고하세요~~~

JAVA AWT 카드레이아웃 (cardlayout) 예제 .  
 
 
오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의) 



 
import java.awt.*;
import java.awt.event.*;
public class CardLayoutTest1 extends Frame {
 public static void main(String[] args) {
   Frame f = new Frame("CardLayoutTest");

   final Panel tabs = new Panel();
 
   tabs.add(new Button("<<"));
     tabs.add(new Button("<"));
   tabs.add(new Button("Options"));
   tabs.add(new Button("Settings"));
   tabs.add(new Button("Preferences"));
   tabs.add(new Button(">"));
   tabs.add(new Button(">>"));
   f.add(tabs, "North");
  
   final CardLayout layout = new CardLayout();
   final Panel cards = new Panel(layout);
   cards.add(new CardPanel("Options"), "Options");
   cards.add(new CardPanel("Settings"), "Settings");
   cards.add(new CardPanel("Preferences"), "Preferences");
   f.add(cards, "Center");
  
  
   ActionListener al = new ActionListener() {
    public void actionPerformed(ActionEvent ev) {
     String cmd = ev.getActionCommand();
     if (cmd.equals("<<")) layout.first(cards);
     else if (cmd.equals("<")) layout.previous(cards);
     else if (cmd.equals(">")) layout.next(cards);
   else if (cmd.equals(">>")) layout.last(cards);
   else layout.show(cards, cmd);
       }
   };
  
   for(int i=0; i<tabs.getComponentCount();i++) {
    ((Button)tabs.getComponent(i)).addActionListener(al);
   }
   f.setSize(400, 300);
   f.setVisible(true);  
   f.addWindowListener(new WindowListenerProcessing() );
 }
}
class CardPanel extends Panel {
 CardPanel(String name) {
  setLayout(new BorderLayout());
  add(new Label("CardPanel : " + name, Label.CENTER),"Center");
  Panel p = new Panel();
  add(p, "South");
  Button btn = new Button("Close");
  ActionListener a1 = new ActionListener() {
   public void actionPerformed(ActionEvent ev) {
    String cmd = ev.getActionCommand();
    if (cmd.equals("Close")) {
     System.exit(0);
    }
   }
  };
  btn.addActionListener(a1);
  p.add(btn); 
 }
}
class WindowListenerProcessing extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
             System.exit(0);
    }
}