메뉴 건너뛰기

창조도시 기록보관소

기타툴 자바 기초 로직 ˙

2006.09.16 01:46

dnajs 조회 수:540 추천:3

public class Logic1
{
public static void main(String[] args)
{
int age=20; //변수를 정의하죠 정수형으로 age라는 변수에 20이라는 값을 할당하죠.

if(age<11 || age>65)

// ||라는 기회는 or라는 뜻이죠. 그런데 |도 있거든요. 두개짜리는 만약앞이 true가 된다면

// 뒤는 조건을 보지않아도 참이 되지여. 그렇기 때문에 뒤는 조사를 안하는 것이고

// |는 앞이 true가 되어도 결론적으로는 true가 되는데도 뒤까지 조사를 하는 것을 말하죠.

// 당연이 2개짜리가 속도가 빠르죠.

// 그런데 속도가 2개짜리가 빠른데 왜 1개짜리를 쓰나면여. 꼭 써야하는 경우가 있거든요(?)
System.out.println("할인을 해드립니다.");
else

//위의 조건이 거짓이면 아래를 출력하게 되죠.
System.out.println("할인해택이 없네요.");
}
}


public class Logic2
{
public static void main(String[] args)
{
char simbol='a'; //문자변수를 선언하고 a라는 문자를 할당했죠. 초기화한거죠.
simbol=(char)(128.0*Math.random());

/*이렇게 하시면 0에서 127까지의 ASCII코드값이 생성이 되지요. 어?

여기서 Math.random()이라는 값은 0.00000~~~~~~0.9999999의 값이 생성되지여

그러면 여기서 128을 곱해봐여 0에서 127까지의 값이 생성이 될 것입니다.

이것을 아스키코드 값으로 명시적 형변환(casting)한다고 하죠. 그럼 이를 실행하시면

결국엔 랜덤한 문자가 생성이 되는 것이죠.

그 다음엔 로직으로 들어가시면 되겠지요.

*/

if(Character.isUpperCase(simbol))

//심볼의 값을 판정하는 것이죠. 이값이 대문자면
System.out.println("대문자"+simbol+"입니다.");
else
//그렇지 않고 소문자면

if(Character.isLowerCase(simbol))
System.out.println("소문자"+simbol+"입니다.");
//그렇지도 않으면

else
System.out.println("영문자가 아닙니다.");

}
}



/*1에서 10까지의 값을 더하는 프로그램입니다.*/

public class Logic3
{
public static void main(String[] args)
{

/*초기화 작업을 시작합니다.
초기화 작업의 의미는 메모리상의 공간에 어떤값이 들어가있을지 모르므로 하죠.

자바에서는 garbage collection에서는 기능이 있는데 이는 왜하는지?

아마도 이러변 변수안에 엉뚱한 값이 없겠죠.

확실하다는 것이겠죠.

그리고 자바에서는 이런기능이 언제 정확하게 실행이 되는지 애매하거든요.

*/

int sum=0;
int limit=10;

for(int i=1;i<=limit;i++)
sum=sum+i;

//이걸 이렇게도 표현을 합니다. sum+=i;

//쓰는이유는 타이핑수가 줄어드니까라고 하는 군요.


System.out.println("10까지의 합은"+sum+"입니다.");
}
}


public class Logic4
{
public static void main(String[] args)
{
for(int value=2;value<=128;value*=2)
/*for문입니다.

구성은요.for(초기값;조건값;증감치)입니다.

System.out.println("값은"+value);
}
}


public class Logic5
{
public static void main(String[] args)
{
int limit=10;
int sum=0;
int i=1;

while(i<=limit)
sum+=i++;//후치연산자 계산후 증가
/*여기서 i++이라는 것이 보이죠. 이를 후치 연산자라고 합니다. 이는 계산후 증가라고 하지요.

이는 sum=sum+i++가 되지요. 그러면 첨에 1=0+1이라는 상태가 되지요.(그래서 sum이라는 값에

1이라는 값이 먼저들어가죠. 그래서 3=1+2이런식으로여 +계산이 먼저 진행이 되고 값은 그 뒤에 증가

하는 것이죠. 그래서 합계를 출력해보시죠.) 그럼 이를 sum=sum+(++i);이렇게 해보시죠.

결과가 어떻게 나오죠. 합계가 65가 나오게 될 것입니다. 이는 전치 연산자라고 하는데

이는 증가후 연산이 되는 것이죠. +(더하기)라는 계산이 나중에 이루어지는 것이죠. 증가후 연산이라고

합니다. 조금 중요한 부분입니다.*/



System.out.println("합계는"+sum);
}
}


import java.io.*;

//입출력에러부분은 위한 package를 import한 것입니다.



public class Logic6
{

public static void main(String[] args)
{

try{
System.out.println("끝내려면키를 누르세요.");
System.in.read();

//키보드에서 입력이 있을때 프로그램을 종료하게 됩니다.

}
catch(IOException e){
System.out.println("이룬 입출력 에러가 발생했네요.");
}
return;
}
}


class Logic7
{
public static void main(String[] args)
{
int limit=10;
int sum=0;
int i=1;

/*

do while문입니다. do문을 조건에 맞는 범위안에서 실행하는 문이죠.

while다음에는 조건값이 나오게 되죠.

이는 while문은 조건이 true이어야 실행하는 반면에 이는 일단 do문을 한번은 실행한다는 것이

다름니다. 컴파일러가 한줄씩 아래로 읽어간다는 이야기가 되는가여?

*/

do{
sum=sum+i;
i++;
}
while(i<=limit);
System.out.println("합계는"+sum);
}
}



이문을 여러분이 한번 분석해 보시기 바랍니다.


/*팩토리얼 구하기*/
public class Logic8
{
public static void main(String[] args)
{
long limit=20;
long factorial=1;

for(int i=1;i<=limit;i++)
{
factorial=1;
for(int factor=2;factor<=i;factor++)
factorial*=factor;
System.out.println(i+"!="+factorial);
}
}
}