String value="1203a4";
char ch=' ';
boolean isNumber=true; // 숫자판별 변수 숫자 - true 숫자 아닌 - false
//반복문
//방에 있는 값 데려오기
//그 값 숫자인지 아닌지
//숫자 - 패스
//!숫자 - isNumber false
int i;
for(i=0; i <= value.length(); i++){ //value의 길이만큼 반복
ch=value.charAt(i); //value의 i번째 글자를 빼옴
if(!('0' <= ch && ch <= '9')){ //숫자가 아닐 때 '0'~'9' 사이가 아닐때.
isNumber=false;
break;
}
}
System.out.print((i+1)+"번 문자는 ");
if(isNumber){
System.out.println(value+"는 숫자입니다.");
}else{
System.out.println(value+"는 숫자가 아닙니다.");
}
'0', '9'은 문자 0과 9를 말한다.
Post List
2017년 2월 28일 화요일
java]1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10)
1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10)
위의 값을 계산하여라.
출력결과
0+1=1 0+1=1
1+2=3 1+3=4
3+3=6 4+6=10
6+4=10 10+10=20
10+5=15 20+15=35
15+6=21 35+21=56
21+7=28 56+28=84
28+8=36 84+36=120
36+9=45 120+45=165
45+10=55 165+55=220
해설 :
앞 줄은 숨겨진 계산 과정
뒷 줄은 문제의 계산 과정.
앞줄은 각각 더해지는 값을 계산하게되고
뒷줄은 계산된 값들의 총 합을 나타낸다.
위의 값을 계산하여라.
for(int num1=1, num2 = 0, sum=0; num1 <= 10; num1++){
System.out.print(num2+"+"+num1+"=");
num2 = num1+num2
System.out.print(num2+" \t");
System.out.print(sum+"+"+num2+"=");
sum = sum+num2;
System.out.println(sum);
// System.out.println(sum + "+"+ num2+ "=" + sum);
}
출력결과
0+1=1 0+1=1
1+2=3 1+3=4
3+3=6 4+6=10
6+4=10 10+10=20
10+5=15 20+15=35
15+6=21 35+21=56
21+7=28 56+28=84
28+8=36 84+36=120
36+9=45 120+45=165
45+10=55 165+55=220
해설 :
앞 줄은 숨겨진 계산 과정
뒷 줄은 문제의 계산 과정.
앞줄은 각각 더해지는 값을 계산하게되고
뒷줄은 계산된 값들의 총 합을 나타낸다.
2017년 2월 27일 월요일
java] 구구단 만들기2
2단 3단 4단 5단 6단 7단 8단 9단
2+1=2 3+1=3 4+1=4 5+1=5 6+1=6 7+1=7 8+1=8 9+1=9
2+2=4 3+2=6 4+2=8 5+2=10 6+2=12 7+2=14 8+2=16 9+2=18
2+3=6 3+3=9 4+3=12 5+3=15 6+3=18 7+3=21 8+3=24 9+3=27
2+4=8 3+4=12 4+4=16 5+4=20 6+4=24 7+4=28 8+4=32 9+4=36
2+5=10 3+5=15 4+5=20 5+5=25 6+5=30 7+5=35 8+5=40 9+5=45
2+6=12 3+6=18 4+6=24 5+6=30 6+6=36 7+6=42 8+6=48 9+6=54
2+7=14 3+7=21 4+7=28 5+7=35 6+7=42 7+7=49 8+7=56 9+7=63
2+8=16 3+8=24 4+8=32 5+8=40 6+8=48 7+8=56 8+8=64 9+8=72
2+9=18 3+9=27 4+9=36 5+9=45 6+9=54 7+9=63 8+9=72 9+9=81
2+1=2 3+1=3 4+1=4 5+1=5 6+1=6 7+1=7 8+1=8 9+1=9
2+2=4 3+2=6 4+2=8 5+2=10 6+2=12 7+2=14 8+2=16 9+2=18
2+3=6 3+3=9 4+3=12 5+3=15 6+3=18 7+3=21 8+3=24 9+3=27
2+4=8 3+4=12 4+4=16 5+4=20 6+4=24 7+4=28 8+4=32 9+4=36
2+5=10 3+5=15 4+5=20 5+5=25 6+5=30 7+5=35 8+5=40 9+5=45
2+6=12 3+6=18 4+6=24 5+6=30 6+6=36 7+6=42 8+6=48 9+6=54
2+7=14 3+7=21 4+7=28 5+7=35 6+7=42 7+7=49 8+7=56 9+7=63
2+8=16 3+8=24 4+8=32 5+8=40 6+8=48 7+8=56 8+8=64 9+8=72
2+9=18 3+9=27 4+9=36 5+9=45 6+9=54 7+9=63 8+9=72 9+9=81
위와 같이 구구단을 출력해보자.
for (int l = 1; l <=9; l++){
while(l==1){
for(int dan=2; dan<=9; dan++){
System.out.print(dan+"단\t");
}
System.out.println();
break;
}
for (int k = 2; k<=9; k++){
System.out.print(k+"+"+l+"="+k*l+"\t");
}
System.out.println();
}
java]2x+4y=10 만족하는 x, y(정수)를 구하시오
2x+4y=10 만족하는 x, y(정수)를 구하시오
x = 0~10 , y = 0~10
출력결과
x = 1, y = 2
x = 3, y = 1
x = 5, y = 0
수학을 풀 필요가 없고, 그저 조건식만 만들어주면 해당하는 값을 자동으로 구해준다..
x = 0~10 , y = 0~10
for (int x=0; x<=10; x++){
for (int y=0; y<=10; y++){
if(((2*x)+(4*y))==10){
System.out.println("x = "+x+", y = "+y);
}
}
}
출력결과
x = 1, y = 2
x = 3, y = 1
x = 5, y = 0
수학을 풀 필요가 없고, 그저 조건식만 만들어주면 해당하는 값을 자동으로 구해준다..
java] (1,5)(2,4)(3,3)(4,2)(5,1) 출력하기
반복문을 사용하여
(1,5)(2,4)(3,3)(4,2)(5,1)
와 같이 두 수의 합이 6이 되도록 출력을 해보자.
구조를 보면 앞의 수는 1부터 올라가고 뒤의 수는 5부터 내려감을 알 수 있다.
1+5=6
2+4=6
3+3=6
4+2=6
5+1=6
만족하는 결과의 수는 5입니다.
저기서는 내부 for문의 초기값을 6으로 주었으나
for문들의 초기값들은 크게 상관이 없다.
if문에서 a+b가 6인지 아닌지 판별을 하게 되기 때문이다.
(1,5)(2,4)(3,3)(4,2)(5,1)
와 같이 두 수의 합이 6이 되도록 출력을 해보자.
구조를 보면 앞의 수는 1부터 올라가고 뒤의 수는 5부터 내려감을 알 수 있다.
int count=0;출력결과
for (int a = 1; a<=6; a++){
for (int b=6; b>=1; b--){
if(a+b==6){
count+=1;
System.out.println(a+"+"+b+"="+(a+b));
}
}
}
System.out.println("만족하는 결과의 수는 "+count+"입니다.\n");
1+5=6
2+4=6
3+3=6
4+2=6
5+1=6
만족하는 결과의 수는 5입니다.
저기서는 내부 for문의 초기값을 6으로 주었으나
for문들의 초기값들은 크게 상관이 없다.
if문에서 a+b가 6인지 아닌지 판별을 하게 되기 때문이다.
java]for문을 while 문으로 변경
for(int i = 0; i<=10; i++){
for (int j=0; j<=i; j++){
System.out.print("*"); }
System.out.println(i);
}
위의 내용을 while문으로 변경해보자.
int i = 0;
while (i<=10) {
int j=0;
while (j<=i) {
System.out.print("*");
j++;
}
System.out.println(i);
i++;
}
java]1+(-2)+3+(-4)+5+...+... 총합이 100이상일 때 num 값 구해보시오.
int num;
int sum=0;
for(num=1; sum<100; num++){
if(num%2==0){
sum+=(-num);
}else{
sum+=num;
}
}
System.out.println("for 1개 if..else 1개 사용");
System.out.println("1+(-2)+3+(-4)+5+...+ 의 총 합이 100이상일 때 해당하는 숫자는?");
System.out.println("총합 '" + sum + "' 일 때 해당하는 수는 '" + num+ "'");
출력결과
for 1개 if..else 1개 사용
1+(-2)+3+(-4)+5+...+ 의 총 합이 100이상일 때 해당하는 숫자는?
총합 '100' 일 때 해당하는 수는 '200'
exit_for:
for(sum = 0, num=1; ; num++){
if(sum>=100)
break exit_for;
if(num%2==0){
sum+=(-num);
}else{
sum+=num;
}
}
System.out.println("for / if / break 사용,");
System.out.println("1+(-2)+3+(-4)+5+...+ 의 총 합이 100이상일 때 해당하는 숫자는?");
System.out.println("총합 '" + sum + "' 일 때 해당하는 수는 '" + num+ "'");
출력결과
for / if / break 사용,
1+(-2)+3+(-4)+5+...+ 의 총 합이 100이상일 때 해당하는 숫자는?
총합 '100' 일 때 해당하는 수는 '200'
for(int i=1; true; i++, s=-s){ // 1 -1 1 -1 1 -1
num=s*i; //부호결정
sum += num;
if(sum>=100){
break;
}
}
for(int i = 1; sum<100; i++, s=-s){
num=s*i; //부호변경
sum += num; //값저장
}
출력결과
sum : 100
num : 199
어떻게 푸냐에 따라 결과값이 달라질 수 있다.
java]반복문의 제어 break/continue
exit_for:
for(int b=1; b<10; b++){
for(int k=1; k<=10; k++){
if (k%3 ==0)
break exit_for;
System.out.print("k -> " + k);
}
System.out.println("\n a ->"+b);
}
break exit_for;를 통해 맨 위에 있는 exit_for: 로 이동된다.
출력결과
k -> 1k -> 2
b 1회 반복 들어가고 이내 k반복 들어가나 2회 반복 후 break를 만나 끝나버린다.
그러나 break만 적었을 경우 k반복문만 끝날 것이나, exit_for를 적어줌으로 하여
exit_for: 위치로 넘어가 버리고 종료되어 버린다.
for(int j=1; j<=10; j++){출력결과
if(j%3==0){//3의 배수일때
continue;
}
System.out.print(j+ " "); }
1 2 4 5 7 8 10
continue는 break와는 달리 남아있는 실행을 넘기고 반복의 처음으로 되돌린다.
위의 내용은 3일경우 continue를 실행하므로 3일 때 맨 처음으로 되돌아가게 되어 아래의 print문을 처리하지 않게 된다.
따라서 3, 6, 9의 결과가 출력되지 않았다.
java]for문으로 구구단 출력하자
// 구구단 2~9단
// **2단**
//2 * 1 = 2
//...
//2 * 9 = 18
// **3단**
위와 같은 형태로 출력해보자.
for(int d=2; d<=9; d++){
System.out.println(" **"+d+"**");
for(int num1=1; num1<=9; num1++){
System.out.println(d+" * "+ num1 + " = "+ d*num1);
}
}
// **2단**
//2 * 1 = 2
//...
//2 * 9 = 18
// **3단**
위와 같은 형태로 출력해보자.
for(int d=2; d<=9; d++){
System.out.println(" **"+d+"**");
for(int num1=1; num1<=9; num1++){
System.out.println(d+" * "+ num1 + " = "+ d*num1);
}
}
java]이중for문으로 *출력하기
// *
// **
// ***
// ****
// *****
for(int i=1; i<=5; i++){
for(int j=1; j<=i; j++){
System.out.print("*");
}
System.out.println();
}
// **
// ***
// ****
// *****
for(int i=1; i<=5; i++){
for(int j=1; j<=i; j++){
System.out.print("*");
}
System.out.println();
}
java]이중for문
//이중 for문
// for(초기식;조건식;증감식){
// for(초기식;조건식;증감식){
// 반복할 문장(안)
// }
// 반복할 문장(밖)
// }
for문 안에 for문이 있는 것으로 외부1회 회전에 내부 for반복이 일어난다.
만약 각각 5회씩 반복되도록 하였다면
외부for문은 5회
내부for문은 25회 반복될 것이다.
예)
for(int i=1; i<=5; i++){
System.out.println("i -> " +i);
for(int j=1; j<=5; j++){
System.out.println("j -> "+j);
}
System.out.println("-------------");
}
출력결과
i -> 1
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
i -> 2
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
i -> 3
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
i -> 4
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
i -> 5
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
예2)
int i;
int a;
System.out.println("시침 ---------- 분침");
System.out.println("a(밖)----------i(안)");
for(a=1; a<5; a++){
for(i=1; i<=5; i++){
System.out.println(a+"----------"+i);
}
}
출력결과
시침 ---------- 분침
a(밖)----------i(안)
1----------1
1----------2
1----------3
1----------4
1----------5
2----------1
2----------2
2----------3
2----------4
2----------5
3----------1
3----------2
3----------3
3----------4
3----------5
4----------1
4----------2
4----------3
4----------4
4----------5
// for(초기식;조건식;증감식){
// for(초기식;조건식;증감식){
// 반복할 문장(안)
// }
// 반복할 문장(밖)
// }
for문 안에 for문이 있는 것으로 외부1회 회전에 내부 for반복이 일어난다.
만약 각각 5회씩 반복되도록 하였다면
외부for문은 5회
내부for문은 25회 반복될 것이다.
예)
for(int i=1; i<=5; i++){
System.out.println("i -> " +i);
for(int j=1; j<=5; j++){
System.out.println("j -> "+j);
}
System.out.println("-------------");
}
출력결과
i -> 1
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
i -> 2
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
i -> 3
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
i -> 4
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
i -> 5
j -> 1
j -> 2
j -> 3
j -> 4
j -> 5
-------------
예2)
int i;
int a;
System.out.println("시침 ---------- 분침");
System.out.println("a(밖)----------i(안)");
for(a=1; a<5; a++){
for(i=1; i<=5; i++){
System.out.println(a+"----------"+i);
}
}
출력결과
시침 ---------- 분침
a(밖)----------i(안)
1----------1
1----------2
1----------3
1----------4
1----------5
2----------1
2----------2
2----------3
2----------4
2----------5
3----------1
3----------2
3----------3
3----------4
3----------5
4----------1
4----------2
4----------3
4----------4
4----------5
java]1~20 중 2의 배수/3의 배수 아닌 수/ 2와 3의 배수 아닌 수 합산들
total=0;
for(int i=1; i<=20; i++){
// if(i%2==0){
// total += i;
// System.out.println("2의 배수 :"+i);
// }
// if(i%3!=0){
// total += i;
// System.out.println("3의 배수가 아닌 수 : "+i);
// }
//2의 배수가 아닐 때 3의 배수가 아닐 때
if(i%2!=0 && i%3!=0){
total += i;
}
}
// System.out.println("1~20까지 2의 배수만 합산 : "+ total);
// System.out.println("1~20까지 3의 배수가 아닌 수 합산 : "+ total);
System.out.println("1~20까지 2와 3의 배수가 아닌 수 합산 : "+ total);
각각의 주석처리를 바꿔가면서 실행하면 된다..
i%2==0은 2로 나눴을 때 몫이 0인 것 (2의 배수)
i%3!=0은 3으로 나눴을 때 몫이 0이 아닌 것(3의 배수가 아닌 수)
i%2!=0 && i%3!=0은 2로 나눴을 때 몫이 0이 아니고 3으로 나눴을 때 0이 아닌 것(2의 배수도 아니고 3의 배수도 아닌 수)
for(int i=1; i<=20; i++){
// if(i%2==0){
// total += i;
// System.out.println("2의 배수 :"+i);
// }
// if(i%3!=0){
// total += i;
// System.out.println("3의 배수가 아닌 수 : "+i);
// }
//2의 배수가 아닐 때 3의 배수가 아닐 때
if(i%2!=0 && i%3!=0){
total += i;
}
}
// System.out.println("1~20까지 2의 배수만 합산 : "+ total);
// System.out.println("1~20까지 3의 배수가 아닌 수 합산 : "+ total);
System.out.println("1~20까지 2와 3의 배수가 아닌 수 합산 : "+ total);
각각의 주석처리를 바꿔가면서 실행하면 된다..
i%2==0은 2로 나눴을 때 몫이 0인 것 (2의 배수)
i%3!=0은 3으로 나눴을 때 몫이 0이 아닌 것(3의 배수가 아닌 수)
i%2!=0 && i%3!=0은 2로 나눴을 때 몫이 0이 아니고 3으로 나눴을 때 0이 아닌 것(2의 배수도 아니고 3의 배수도 아닌 수)
java]반복문의 제어
int total=0;
for(int i=0; i<=10; i++){
// 짝수의 합
if(i%2==0 && i>0){
total += i;
System.out.println("짝수 : "+i);
// break; // 반복문 밖으로 빠져나간다.
}
}
System.out.println("짝수의 합은 : "+total);
break를 사용하고 안하고의 차이...
위의 주석처리된 break를 주석해제한다면
위의 결과내용은 2를 출력하고 반복을 끝내게 된다.
주석해제시 결과
짝수 : 2
짝수의 합은 : 2
주석 처리를 하게 되면
짝수 : 2
짝수 : 4
짝수 : 6
짝수 : 8
짝수 : 10
짝수의 합은 : 30
위와 같이 나온다.
for(int i=0; i<=10; i++){
// 짝수의 합
if(i%2==0 && i>0){
total += i;
System.out.println("짝수 : "+i);
// break; // 반복문 밖으로 빠져나간다.
}
}
System.out.println("짝수의 합은 : "+total);
break를 사용하고 안하고의 차이...
위의 주석처리된 break를 주석해제한다면
위의 결과내용은 2를 출력하고 반복을 끝내게 된다.
주석해제시 결과
짝수 : 2
짝수의 합은 : 2
주석 처리를 하게 되면
짝수 : 2
짝수 : 4
짝수 : 6
짝수 : 8
짝수 : 10
짝수의 합은 : 30
위와 같이 나온다.
java]무한루프
for(;true;){
System.out.println("안녕하세요!");
}
위와 같이 할 경우 무한으로 반복하는 것을 의미한다.
끝없이 출력될 것이다...
int i=1;
while(true){
if(i>5){
System.out.println("반갑습니다!");
break;
}
i++;
}
또다른 예로 위와 같은 경우가 있다.
위의 내용은 무한 반복 중에 i가 5보다 클 경우 반갑습니다!를 출력한 후 break로 빠져나가는 내용이다.
break를 사용시 제일 최근 반복문을 빠져나간다.
System.out.println("안녕하세요!");
}
위와 같이 할 경우 무한으로 반복하는 것을 의미한다.
끝없이 출력될 것이다...
int i=1;
while(true){
if(i>5){
System.out.println("반갑습니다!");
break;
}
i++;
}
또다른 예로 위와 같은 경우가 있다.
위의 내용은 무한 반복 중에 i가 5보다 클 경우 반갑습니다!를 출력한 후 break로 빠져나가는 내용이다.
break를 사용시 제일 최근 반복문을 빠져나간다.
2017년 2월 26일 일요일
java]do while문
// do while// do {
// 반복할 내용
// } while (조건문);
예)
일반적인 while문
동일한 내용의 do while문
두 내용의 차이는
초기값을 먼저 밖에서 하는 것은 같으나
while문의 경우 조건을 먼저 확인 후 반복을 하는 것이고,
do while문은 먼저 1회 진행 후 조건문을 확인한다는 것이 다르다.
마지막에 조건을 확인하므로, 아래의 조건문 i++<10 을 유의해야 한다.
i++<=10 를 하게 되면 10일때 1회 더 반복하므로 11까지 출력되게 된다.
일반적인 while문
i=0;
while(i++<=4){
System.out.println(i+" ");
}
동일한 내용의 do while문
i=1;
do{
System.out.println(i+" ");
}while(i++<=4);
두 내용의 차이는
초기값을 먼저 밖에서 하는 것은 같으나
while문의 경우 조건을 먼저 확인 후 반복을 하는 것이고,
do while문은 먼저 1회 진행 후 조건문을 확인한다는 것이 다르다.
// do while문 1~10
System.out.println("do while문으로 1~10 출력");
i=1;
do{
System.out.print(i+" "); }while(i++<10);
마지막에 조건을 확인하므로, 아래의 조건문 i++<10 을 유의해야 한다.
i++<=10 를 하게 되면 10일때 1회 더 반복하므로 11까지 출력되게 된다.
java]전위 연산자 후위 연산자
System.out.print("while문 전위 연산자 : ");
i=1;
while(++i<=5){
// ++i
System.out.print(i+" ");
}
출력결과 : while문 전위 연산자 : 2 3 4 5
++가 앞에 있으면 전위 연산자이다.
처음 i<=5에 적용될 때 1이 증가한 2부터 적용되고 넘어간다.
마지막에 1이 증가하고 5인 상태로 반복되므로 반복문의 종료는 5로 끝난다.
System.out.print("while문 후위 연산자 : ");
i=1;
while(i++<=5){
// i++
System.out.print(i+" ");
}
출력결과 : while문 후위 연산자 : 2 3 4 5 6
++가 뒤에 있으면 후위 연산자이다.
처음 i<=5에 i를 1을 먼저 적용한 후 1 증가된다.
마지막에 i가 5이므로 반복을 하는데 반복문에서는 6으로 반복이 끝난다.
i=1;
while(++i<=5){
// ++i
System.out.print(i+" ");
}
출력결과 : while문 전위 연산자 : 2 3 4 5
++가 앞에 있으면 전위 연산자이다.
처음 i<=5에 적용될 때 1이 증가한 2부터 적용되고 넘어간다.
마지막에 1이 증가하고 5인 상태로 반복되므로 반복문의 종료는 5로 끝난다.
System.out.print("while문 후위 연산자 : ");
i=1;
while(i++<=5){
// i++
System.out.print(i+" ");
}
출력결과 : while문 후위 연산자 : 2 3 4 5 6
++가 뒤에 있으면 후위 연산자이다.
처음 i<=5에 i를 1을 먼저 적용한 후 1 증가된다.
마지막에 i가 5이므로 반복을 하는데 반복문에서는 6으로 반복이 끝난다.
java]while문 - for문과 다른 점.
// 초기화
// while(조건식){
// 반복할 문장
// 증감식
// }
기본적인 문법은 위와 같다.
for 문과 같이 반복한다는 것은 같지만
for문은 조건식 안에 초기화를 해주고, 조건과 증감을 적어주는 형태라면
while는 초기화는 시작하기 전 while문 밖에서 해주어야 하고
증감식은 내부에 적어주어야 하는 것이 다르다.
//1~4까지 출력
int num=0;
while(num<5){
System.out.println("num " +num);
num++;
}
위와 같이 while문 바깥에서 초기화를 한 후 조건식을 적어주고
내부에 증감식을 사용해 반복되는 형태이다.
total = 0;
i = 1;
while(i<=10){
total+=i;
i++;
}
System.out.println("while문으로 1~10까지 합 만들기 : "+total);
출력결과 : while문으로 1~10까지 합 만들기 : 55
위의 것을 for문으로 만들면 아래와 같다.
int i, total=0;
for(i=1; i<=10; i++){
total+=i;
}
System.out.println("for문으로 1~10까지 합 만들기 : "+total);
// while(조건식){
// 반복할 문장
// 증감식
// }
기본적인 문법은 위와 같다.
for 문과 같이 반복한다는 것은 같지만
for문은 조건식 안에 초기화를 해주고, 조건과 증감을 적어주는 형태라면
while는 초기화는 시작하기 전 while문 밖에서 해주어야 하고
증감식은 내부에 적어주어야 하는 것이 다르다.
//1~4까지 출력
int num=0;
while(num<5){
System.out.println("num " +num);
num++;
}
위와 같이 while문 바깥에서 초기화를 한 후 조건식을 적어주고
내부에 증감식을 사용해 반복되는 형태이다.
total = 0;
i = 1;
while(i<=10){
total+=i;
i++;
}
System.out.println("while문으로 1~10까지 합 만들기 : "+total);
출력결과 : while문으로 1~10까지 합 만들기 : 55
위의 것을 for문으로 만들면 아래와 같다.
int i, total=0;
for(i=1; i<=10; i++){
total+=i;
}
System.out.println("for문으로 1~10까지 합 만들기 : "+total);
java]for문으로 1~10까지 합을 만들자.
int total = 0;
for(int i=1; i<=10; i++){
// 1~10 덧셈
total += i;
}
System.out.println(total);
누적산을 이용하여 위와 같이 간단하게 만들 수 있다.
for(int i=1; i<=10; i++){
// 1~10 덧셈
total += i;
}
System.out.println(total);
누적산을 이용하여 위와 같이 간단하게 만들 수 있다.
java]역삼각형태로 출력하기(for 문을 사용)
위와 같은 형태의 모양으로 출력을 해보자.
for 문을 사용하여 위의 모양을 만드는 것이 이번에 할 내용.
1 for(int i=6; i>=2; i--){
2 for(int s=1; s<i; s++){
3 System.out.print("*");
4 }
5 System.out.println();
6 for(int k=6; k>i-1 && i>2; k--){
7 System.out.print(" ");
8 }
9 }
생각에 따라서는 어렵게 느껴질 수도 있는 문제이다.
해당 모습을 만드는 것에는 위의 방법과는 다르게 여러가지가 있을 수 있다.
해설...
1번째 줄
첫번째 for문 6에서 2까지 1씩 감소시키며 총 5회 반복한다.
: 5개의 줄을 만들 것이므로 총 5회 반복하도록 한다.
2번째 줄
내부 1번째 for문 1부터 i보다 작을 때까지 1씩 증가하며 *을 출력한다.
처음 시작시 i가 6이므로 1부터 5까지 총 5회 반복하며 *을 5개 출력한다.
5번째 줄
내부 1번째 for문이 종료되고 줄바꿈을 한다.
6번째 줄
내부 2번째 for문 초기값을 6으로 주고 6을 1씩 감소시키며 i-1만큼 반복한다.
그리고 i가 2보다 클때만 반복한다.
1회전
1. for문 s=1 < i=6, s++ => *이 5개 출력된다.
2. 줄바꿈을 한다.
3. for문 k=6 > i=6-1 & 6>2 k++ =>6부터 i까지 반복 6-1 은 5이므로 " "1회 반복 출력
2회전
1. for문 s=1 < i=5, s++ => *이 4회 출력
2. 줄바꿈
3. for문 k=6 > i=5-1 & 5>2 k++ =>6부터 i까지 반복 5-1은 4이므로 " "2회 반복 출력
3회전
1. for문 s=1 < i=4, s++ => *이 3회 출력
2. 줄바꿈
3. for문 k=6 > i=4-1 & 4>2 k++ =>6부터 i까지 반복 4-1은 3이므로 " "3회 반복 출력
......
5회전
1. for문 s=1 < i=2, s++ => *이 1회 출력
2. 줄바꿈
3. for문 k=6 > i=2-1 & 2>2 k++ => 1번 조건은 충족하나 2번 조건이 불충족이므로 반복하지 않고 끝낸다.
더 쉬운 방법도 있으리라 생각됩니다.^^
2017년 2월 24일 금요일
java] Scanner로 입력받은 수만큼 반복하기
Scanner s = new Scanner(System.in);
int number = s.nextInt();
for(int i=1; i<=number; i++){
System.out.println("으아아아!!!");
}
입력한 수가 number로 저장이 될 것이고,
i를 1로 초기화를 하였고,
조건이 num보다 작거나 같을 때이니
입력한 수만큼 for 문의 반복문을 실행할 것이다.
으아아아!!!
으아아아!!!
으아아아!!!
으아아아!!!
으아아아!!!
...
java]구구단을 출력해볼까?(for문으로)
// <<---- 2단 ---->>
// 2 * 1 = 2
// 2 * 2 = 4
// ...
// 2 * 9 = 18
// for문 사용 int dan;
for 문을 사용하여 위와 같이 나타나도록 구구단을 만들어보자.
스캐너로 출력할 구구단의 단 수를 입력 받고 해당 단을 출력하는 내용이다.
간단한 내용으로 딱 보고 알 수 있을 것 같다.
먼저 스캐너로 숫자를 입력 받고
그것을 dan으로 저장한다.
i를 1~9까지 1증가 반복문으로 9회 반복
출력결과
// 2 * 1 = 2
// 2 * 2 = 4
// ...
// 2 * 9 = 18
// for문 사용 int dan;
for 문을 사용하여 위와 같이 나타나도록 구구단을 만들어보자.
스캐너로 출력할 구구단의 단 수를 입력 받고 해당 단을 출력하는 내용이다.
Scanner s = new Scanner(System.in);
int dan = s.nextInt();
System.out.println("입력받은 단은" + dan);
System.out.println("<<----"+dan+"단 ---->>");
for(int i=1; i<=9; i++){
System.out.println(dan+" * "+i+" = "+(dan*i));
}
간단한 내용으로 딱 보고 알 수 있을 것 같다.
먼저 스캐너로 숫자를 입력 받고
그것을 dan으로 저장한다.
i를 1~9까지 1증가 반복문으로 9회 반복
출력결과
입력받은 단은2
<<----2단 ---->>
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
java]반복문 - for문
반복문 - 같은문장을 여러번 반복해주는 문장을 말한다.
// for(초기식;조건식;증감식){
// 반복할 코드
// }
위와 같은 형태로 사용이 가능하며,
조건식을 만족할 때 내부의 동작을 실행하고
만족하지 않을 경우에는 그냥 넘어가버린다.
예를 들어
위와 같은 내용의 경우
i를 1로 초기화를 하고,
i가 10보다 작거나 같을 때까지
i를 후증가 시킨다는 것으로
총 10번 반복하자는 말이다.
그러므로 아래와 같이 총 10회 반복하게 된다.
또다른 예로
위의 경우와 마찬가지로 10회 반복하는 내용이다.
"" 없이 i를 그냥 적으면 반복할때마다 바뀐 i 값이 출력된다.
다음은 증감식을 보자
반복할 때마다 +2씩 증가하여라는 말인데
이것을 줄이면 i+=2 로 바꿀 수 있다.
출력내용
위의 것에서 i의 값만 바뀐 것이다.
이것의 출력내용은
으로 짝수만 출력된 것을 알 수 있다.
위와 같이 역으로 감소시키면서 반복하게 할 수도 있다.
출력내용
상황에 따라, 필요에 따라 응용하여 사용하면 된다.
// for(초기식;조건식;증감식){
// 반복할 코드
// }
위와 같은 형태로 사용이 가능하며,
조건식을 만족할 때 내부의 동작을 실행하고
만족하지 않을 경우에는 그냥 넘어가버린다.
예를 들어
for(int i=1; i<=10; i++){
System.out.print("i = "+ i +" ");
System.out.println("hello java");
}
위와 같은 내용의 경우
i를 1로 초기화를 하고,
i가 10보다 작거나 같을 때까지
i를 후증가 시킨다는 것으로
총 10번 반복하자는 말이다.
그러므로 아래와 같이 총 10회 반복하게 된다.
i = 1 hello java
i = 2 hello java
i = 3 hello java
i = 4 hello java
i = 5 hello java
i = 6 hello java
i = 7 hello java
i = 8 hello java
i = 9 hello java
i = 10 hello java
또다른 예로
for(int i=1; i<=10; i++){
System.out.print(i+" ");
}
위의 경우와 마찬가지로 10회 반복하는 내용이다.
"" 없이 i를 그냥 적으면 반복할때마다 바뀐 i 값이 출력된다.
1 2 3 4 5 6 7 8 9 10
다음은 증감식을 보자
for(int i=1; i<=10; i=i+2){i=i+2은
System.out.print(i+" ");
}
반복할 때마다 +2씩 증가하여라는 말인데
이것을 줄이면 i+=2 로 바꿀 수 있다.
출력내용
1 3 5 7 9해보니 홀수만 나타난 것을 알 수 있다.
for(int i=2; i<=10; i+=2){
System.out.print(i+" ");
}
위의 것에서 i의 값만 바뀐 것이다.
이것의 출력내용은
2 4 6 8 10
으로 짝수만 출력된 것을 알 수 있다.
for(int i=10; i>=1; i--){
System.out.print(i+" ");
}
위와 같이 역으로 감소시키면서 반복하게 할 수도 있다.
출력내용
10 9 8 7 6 5 4 3 2 1
상황에 따라, 필요에 따라 응용하여 사용하면 된다.
java] charAt()
String str = "korea"
ch=str.charAt(2);
System.out.println("가져온 글자 :"+ch);
을 수행하면 r 을 얻을 수 있다.
문자열 변수 str에 korea가 저장되었고,
이것은 str이라는 변수에 배열로 저장되어 있다고 보면 된다.
이것을 가져오기 위해 사용하는 것이 charAt(index)
index는 0부터 시작하므로
0 = k
1 = o
2 = r
3 = e
4 = a
일 것이다.
str.charAt(2)번을 가져오라고 했으므로 3번째에 있는 index값 2의 것 r 을 가져왔다.
str.charAt(4)를 하게 되면 a 를 가져올 것이다.
ch=str.charAt(2);
System.out.println("가져온 글자 :"+ch);
을 수행하면 r 을 얻을 수 있다.
문자열 변수 str에 korea가 저장되었고,
이것은 str이라는 변수에 배열로 저장되어 있다고 보면 된다.
이것을 가져오기 위해 사용하는 것이 charAt(index)
index는 0부터 시작하므로
0 = k
1 = o
2 = r
3 = e
4 = a
일 것이다.
str.charAt(2)번을 가져오라고 했으므로 3번째에 있는 index값 2의 것 r 을 가져왔다.
str.charAt(4)를 하게 되면 a 를 가져올 것이다.
java] switch case 문 예제'영문자판별'
//switch case 문
// A a B b C c D d
// "영문자 A/a 입니다."
switch (str) {
case "A":
case "a":
System.out.println("영문자 A/a 입니다.");
break;
case "B":
case "b":
System.out.println("영문자 B/b 입니다.");
break;
case "C":
case "c":
System.out.println("영문자 C/c 입니다.");
break;
case "D":
case "d":
System.out.println("영문자 D/d 입니다.");
break;
default:
break;
}
break;를 생략함으로 하여 대문자와 소문자 무엇을 넣든 해당의 값을 얻을 수 있도록 되었다.
// A a B b C c D d
// "영문자 A/a 입니다."
switch (str) {
case "A":
case "a":
System.out.println("영문자 A/a 입니다.");
break;
case "B":
case "b":
System.out.println("영문자 B/b 입니다.");
break;
case "C":
case "c":
System.out.println("영문자 C/c 입니다.");
break;
case "D":
case "d":
System.out.println("영문자 D/d 입니다.");
break;
default:
break;
}
break;를 생략함으로 하여 대문자와 소문자 무엇을 넣든 해당의 값을 얻을 수 있도록 되었다.
java]switch case를 사용하여 점수를 받아 학점을 주도록 만들자.
Scanner s = new Scanner(System.in);
int number = s.nextInt();
System.out.println("입력받은 number의 값은" + number);
//학점관리 프로그램
//점수를 받아서 조건에 맞는 등급을 부여
//90점 이상 A 80점 이상 B 70점 이상은 C 50점 미만 F
// switch case
int number1 = (number/10); //case 간략화
switch (number1) {
case 10:
// System.out.println("A");
// break; <- 생략시 case 9 로 넘어가게 되므로 case 10에 출력을 넣지 않아도 A가 출력이 된다.
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default:
System.out.println("F");
break;
}
case 10:에 System.out.println("A"); break; 실행부분을 생략할 수 있다.
그만큼 소스가 줄어드는 효과를 기대할 수 있다.
(해당 내용은 단 2줄일 뿐이지만, 이것이 더 복잡한 수백줄일 경우 확연히 차이가 많이 날 것이다.)
int number = s.nextInt();
System.out.println("입력받은 number의 값은" + number);
//학점관리 프로그램
//점수를 받아서 조건에 맞는 등급을 부여
//90점 이상 A 80점 이상 B 70점 이상은 C 50점 미만 F
// switch case
int number1 = (number/10); //case 간략화
switch (number1) {
case 10:
// System.out.println("A");
// break; <- 생략시 case 9 로 넘어가게 되므로 case 10에 출력을 넣지 않아도 A가 출력이 된다.
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default:
System.out.println("F");
break;
}
case 10:에 System.out.println("A"); break; 실행부분을 생략할 수 있다.
그만큼 소스가 줄어드는 효과를 기대할 수 있다.
(해당 내용은 단 2줄일 뿐이지만, 이것이 더 복잡한 수백줄일 경우 확연히 차이가 많이 날 것이다.)
java]switch case 복습
[기본형태]
// switch case문
// switch(정수식(숫자)){
//
// case 9: 동작;[break;] // break는 생략가능
// case 8: 동작;[break;]
// case 7: 동작;[break;]
// ...
// default: 동작;
// }
위의 switch case는 해당 조건이 맞을 때 해당의 것을 동작한다는 큰 뜻이 있다....
그러나 switch(정수식(숫자))에 굳이 숫자를 넣을 필요는 없다.
예를들어
//문자형 char
char ch = 'C';
//결과값 : 7
switch (ch) {
case 'A':
System.out.println("9");
break;
case 'B':
System.out.println("8");
break;
case 'C':
System.out.println("7");
break;
case 'D':
System.out.println("6");
break;
default:
System.out.println("0");
break;
}
// 문자열 String
String str = "java";
//switch
//java - 1 , jsp - 2, web - 3 // 0
switch (str) {
case "java":
System.out.println("1");
break;
case "jsp":
System.out.println("2");
break;
case "web":
System.out.println("3");
break;
default:
System.out.println("0");
break;
}
String str1 = "자바";
switch (str1){
case "자바":
System.out.println("1");
break;
case "제이에스피":
System.out.println("2");
break;
case "웹":
System.out.println("3");
break;
default:
System.out.println("0");
break;
}
위와 같이 문자형이나 문자열이 들어가도 사용이 가능하다.
대신 주의점으로는
문자의 경우 case 뒤에 'D' 와 같이 적어야 하며
문자열의 경우 case 뒤에 "java"와 같이 적어야 오류 없이 이용이 가능하다.
영어만이 아니라 한글로도 사용이 가능하다.
// switch case문
// switch(정수식(숫자)){
//
// case 9: 동작;[break;] // break는 생략가능
// case 8: 동작;[break;]
// case 7: 동작;[break;]
// ...
// default: 동작;
// }
위의 switch case는 해당 조건이 맞을 때 해당의 것을 동작한다는 큰 뜻이 있다....
그러나 switch(정수식(숫자))에 굳이 숫자를 넣을 필요는 없다.
예를들어
//문자형 char
char ch = 'C';
//결과값 : 7
switch (ch) {
case 'A':
System.out.println("9");
break;
case 'B':
System.out.println("8");
break;
case 'C':
System.out.println("7");
break;
case 'D':
System.out.println("6");
break;
default:
System.out.println("0");
break;
}
// 문자열 String
String str = "java";
//switch
//java - 1 , jsp - 2, web - 3 // 0
switch (str) {
case "java":
System.out.println("1");
break;
case "jsp":
System.out.println("2");
break;
case "web":
System.out.println("3");
break;
default:
System.out.println("0");
break;
}
String str1 = "자바";
switch (str1){
case "자바":
System.out.println("1");
break;
case "제이에스피":
System.out.println("2");
break;
case "웹":
System.out.println("3");
break;
default:
System.out.println("0");
break;
}
위와 같이 문자형이나 문자열이 들어가도 사용이 가능하다.
대신 주의점으로는
문자의 경우 case 뒤에 'D' 와 같이 적어야 하며
문자열의 경우 case 뒤에 "java"와 같이 적어야 오류 없이 이용이 가능하다.
영어만이 아니라 한글로도 사용이 가능하다.
java]소문자/대문자 판별
조건식에 ('a'<=ch1 && ch1<='z') 를 넣으면 소문자인지 확인을 한다.
조건식에 ('A'<=ch1 && ch1<='Z')를 넣으면 대문자인지 확인을 한다.
char ch1='z';
boolean b1=('a'<=ch1 && ch1<='z')/*ch1 소문자 인지 확인코드*/;
boolean b2=('A'<=ch1 && ch1<='Z')/*ch1 대문자 인지 확인코드*/;
boolean b3=(97<=ch1 && ch1<=122); //아스키코드로도 확인가능
System.out.println(b1); //true
System.out.println(b2);
System.out.println(b3);
위의 내용은
char ch1에 'z'를 입력했을 때 대소문자를 구별하여 true인지 false인지 출력하는 내용.
java]switch case문
[기본형태]
// switch case문
// switch(정수식(숫자)){
//
// case 9: 동작;[break;] // break는 생략가능
// case 8: 동작;[break;]
// case 7: 동작;[break;]
// ...
// default: 동작;
// }
break는 멈추고 나가라는 뜻이다. 없을 경우 동작을 한 후 다음 것도 동작이 된다.
예를 들어 아래와 같은 내용의 경우
switch (num) {
case 10:
System.out.println("입력받은 수는 10입니다.");
break;
case 20:
System.out.println("입력받은 수는 20입니다.");
break;
default:
System.out.println("10/20이 아닌 다른 수 입니다.");
}
스캐너로 num으로 10을 입력 받았을 경우
해당 위치로 가 프린트문이 실행되고 break로 인해 밖으로 빠져나가지만,
break가 없다고 가정 했을 경우
case10의 실행문과
case20의 실행문이 적용된 후 break로 인해 빠져나가게 된다.
java]스캐너
// 스캐너 사용방법
Scanner s = new Scanner(System.in);
int num = s.nextInt();
이클립스에서 위와 같이 적으면 되고,
혹시라도 다른 곳에서 붙여넣기를 하였다면 오류가 뜰 것인데
상단에
import java.util.Scanner; 를 추가해주거나
혹은 Scanner부분에서 콘트롤 + 스페이스로 자동완성기능을 눌러주면 자동으로 추가가 된다.
System.in은 키보드로 입력받은 내용을 받는다는 말이다.
Scanner s = new Scanner(System.in);
int num = s.nextInt();
이클립스에서 위와 같이 적으면 되고,
혹시라도 다른 곳에서 붙여넣기를 하였다면 오류가 뜰 것인데
상단에
import java.util.Scanner; 를 추가해주거나
혹은 Scanner부분에서 콘트롤 + 스페이스로 자동완성기능을 눌러주면 자동으로 추가가 된다.
System.in은 키보드로 입력받은 내용을 받는다는 말이다.
java]예제문제
삼항 연산자를 이용하여 5가 양수인지 아닌지 판별.
int num=5;
System.out.println(num>=0? "양수" : "양수가아닙니다.");
삼항 연산자를 이용하여 1이 양수인지 음수인지 0인지 판별
int num1=1;
System.out.println(num1>0? "양수" : (num1<0? "음수" : "0"));
또는
System.out.println(!(num1!=0)? "0" : num1>0? "양수" : "음수");
짝수와 홀수 판별
int a = 34;
if(a%2!=0){
System.out.println("홀수 입니다");
}else{
System.out.println("짝수입니다.");
}
최대값 최소값 확인
int num1 = 150;
int num2 = 300;
int max = 0;
if (num1>num2) {
max=num1;
System.out.println("최대 값은"+max+" 입니다.");
} else {
max=num2;
System.out.println("최대 값은"+max+" 입니다.");
}
int min = 0;
if (num1<num2) {
min=num1;
System.out.println("최소 값은"+min+" 입니다.");
} else {
min=num2;
System.out.println("최소 값은"+min+" 입니다.");
}
절대값 구하기
**절대값 1 -> 1 , -1 -> 1
int num3 = 55;
int num4 = -431;
// num3과 num4의 절대값을 구하는 문장.
if (num3 >= 0) {
System.out.println(num3);
} else {
System.out.println(num3*(-1));
}
if (num4 >= 0) {
System.out.println(num4);
} else {
System.out.println(num4*(-1));
}
int num=5;
System.out.println(num>=0? "양수" : "양수가아닙니다.");
삼항 연산자를 이용하여 1이 양수인지 음수인지 0인지 판별
int num1=1;
System.out.println(num1>0? "양수" : (num1<0? "음수" : "0"));
또는
System.out.println(!(num1!=0)? "0" : num1>0? "양수" : "음수");
짝수와 홀수 판별
int a = 34;
if(a%2!=0){
System.out.println("홀수 입니다");
}else{
System.out.println("짝수입니다.");
}
최대값 최소값 확인
int num1 = 150;
int num2 = 300;
int max = 0;
if (num1>num2) {
max=num1;
System.out.println("최대 값은"+max+" 입니다.");
} else {
max=num2;
System.out.println("최대 값은"+max+" 입니다.");
}
int min = 0;
if (num1<num2) {
min=num1;
System.out.println("최소 값은"+min+" 입니다.");
} else {
min=num2;
System.out.println("최소 값은"+min+" 입니다.");
}
절대값 구하기
**절대값 1 -> 1 , -1 -> 1
int num3 = 55;
int num4 = -431;
// num3과 num4의 절대값을 구하는 문장.
if (num3 >= 0) {
System.out.println(num3);
} else {
System.out.println(num3*(-1));
}
if (num4 >= 0) {
System.out.println(num4);
} else {
System.out.println(num4*(-1));
}
java]08]연산자
연산자
1. 산술연산자
+ - * / %
(%나머지 출력)
2. 비교연산자.
==, > , < , >= , <= , !=
3. 대입 연산자
=
4. 누적연산
+=, -=, *= , /=, %=
5. 증감 연산자
++n --n n++ n--
6. 논리 연산자
&& (AND 연산자) || (OR 연산자) ! (NOT 연산자)
<논리표>
&& (AND 연산자) || (OR 연산자) ! (NOT 연산자)
A B && ||
T T T T
T F F T
F T F T
F F F F
A !
T F
F T
&& AND 연산자
|| OR 연산자
! NOT 연산자
7. 3항 연산자
조건식? 값1(참):값2(거짓);
예)
a=100;
b=200;
System.out.println(a>b? "크다":"작다");
java]07]데이터 형변환
데이터 형변환
1. 묵시적 형변환(자동 형변환)
short s=10;
int i;
i=s;
System.out.println("묵시적 형변환: "+i);
2. 명시적 형변환(강제 형변환)
short s1;
int i1 = 10;
s1=(short)i1;
System.out.println(s1);
1. 묵시적 형변환(자동 형변환)
short s=10;
int i;
i=s;
System.out.println("묵시적 형변환: "+i);
2. 명시적 형변환(강제 형변환)
short s1;
int i1 = 10;
s1=(short)i1;
System.out.println(s1);
연산시 데이터 형변환
short A=5;
short B=3;
//short C=(short)(A+B);
int C=A+B;
java]06]리터럴
1. 문자형 리터럴
'A' '자' '\uC790'
이스케이프 문자 - \n \t \' \" \\
System.out.println("");
위에서 ""안에 들어가는 것들은 화면에 출력이 되지만, \ 표기의 경우 화면에 출력이 되지 않는다. 예를 들어 컴퓨터의 경로를 출력해야 한다고 가정을 하면
잘못된 내용
System.out.println("C:\Program Files\Java\jdk1.8.0_121\bin");라고 했을 경우 오류가 뜨게 된다. 이때 위와 같은 내용을 출력하기 위해서는 \표시는 2개씩 해주면 정상적으로 출력이 된다.
정상적인 내용
System.out.println("C:\\Program Files\\Java\\jdk1.8.0_121\\bin");
2. 정수형 리터럴
10진수 / 2진수 / 8진수 / 16진수
5 0b0101 030 0x0110
3. 실수형 리터럴
소수점 3.14 2.1212f
4. 논리형 리터럴
true 또는 false , 0/1 사용할 수 없음, 대문자 TRUE와 FALSE 사용할 수 없음.
2017년 2월 22일 수요일
java]05]변수/상수
변수 :
사용할 데이터를 메모리에 임시적으로 저장하기 위해 사용하는 것으로 일종의 주소라고 생각하면 된다. 여러가지 형태로 저장이 되며, 변경이 가능하다. 변경이 불가능한 것도 있는데 이것은 상수라 부른다.변수 혹은 상수를 생성하기 위해서는 저장되는 데이터의 형태를 지정해주어야 하는데 그것을 데이터 타입이라 부르며 종류는 다음과 같다.
논리형 - boolean상수 :
문자형 - char
정수형 - byte(1byte), short(2byte), int(4byte), long(8byte)
실수형 - double, float
참조형 - String(문자열)
변하지 않을 고정된 값을 말한다. 변수 선언시 final을 적어주면 상수로 선언이 된다.
예)final int NUMBER =100;
변수 형태
데이터타입 변수명 = 초기값;
ex) int a = 0;
1. 논리형 타입 boolean
boolean tf=true;
boolean tf2=false;
와 같이 값을 넣을 수 있다.
true 또는 false 값만 가질 수 있으며, 참, 혹은 거짓으로 말할 수 있다.
예를 들어
조건문으로
10<20라고 했을 때(앞에서 10이 20보다 작다 라고 읽으면 된다.)
이것에 대한 값은 사실(true)이 될 것이고,
10>20라고 했을 때는 이것은 거짓(false)가 될 것이다.
2. 문자형 타입 char
char ch='A';
문자를 담고자 할 때 사용합니다.
위와 같이 선언할 경우 ch 변수에는 A(대문자 A)가 저장되게 됩니다.
이곳에는 하나의 문자만 입력이 가능하며, AB와 같이 복수의 문자는 입력이 되지 않습니다.
입력시 오류가 발생하게 됩니다.
활용으로
char ch='A';
int i = ch;
를 입력하게 되면 변수 i에 변수 ch의 값이 들어가게 되는데
이것을 출력하게 되면 A의 int 형 값(유니코드값)인 65가 출력됩니다.
역으로 입력 및 출력도 가능한데.
int i = 65;
char ch = (char)i;
를 입력하게 되면 i에 65가 저장되어 있지만, 그것을 ch에 넣음으로해서 문자형으로 변환되어 ch를 출력했을 때 A가 출력된다.3. 정수형 타입 byte(1byte), short(2byte), int(4byte), long(8byte)
[char ch = (char)i; 의 (char)은 정수형인 i를 문자형으로 넣을 수 없기에(데이터 타입이 다르기에) 강제로 (char)를 붙여 i의 값을 char 형으로 변경해주는 행위이다.]
byte(1byte)형
1byte의 크기를 가지며,
표현할 수 있는 범위는 -128~127의 숫자를 가질 수 있다.
short(2byte)형
2byte의 크기를 가지며,
표현할 수 있는 범위는 -32,768~32,767를 가질 수 있다.
int(4byte)형
4byte의 크기를 가지며,
표현할 수 있는 범위는 -2,147,483,648~2,147,483,647를 가질 수 있다.
long(8byte)형
8byte의 크기를 가지며,
표현할 수 있는 범위는 -9,223,372,036,854,775,808~9,223,372,036,854,775,807를 가질 수 있다.
4. 실수형 타입 float(4byte) double(8byte)
float(4byte)
4byte의 크기를 가지며,
표현할 수 있는 범위는
±(1.40129846432481707e-45 ~3.40282346638528860e+38)
double(8byte)
8byte의 크기를 가지며,
표현할 수 있는 범위는
±(4.94065645841246544e-324d ~1.79769313486231570e+308d)
5. 참조형타입 String(문자열)
String은 문자열로 하나하나의 문자들이 각각의 배열에 저장되어 있는 형태를 띠고 있다고 생각하면 된다.
예)
String a = "windows";
으로 windows라는 단어를 삽입할 수 있다.
단어의 각각의 문자인 w,i,n,d,o,w,s 가 배열로 하나씩 저장되어 조합되어 있다 생각하면 될 것 같다.
System.out.println(a);
로 windows를 출력할 수 있으며,
for (int i=0; i<a.length();i++){
System.out.print(a.charAt(i)+",");
}
로 w,i,n,d,o,w,s,로 출력할 수 있다.
java]04] print의 사용
print문은 아래와 같이
System.out.print();
가 기본 형태 입니다.
여기에 System.out.println();으로 하면 줄넘김이 가능하죠..
그리고 앞에서 보았듯이 여기에 무언가를 적게 되면 화면에 출력하게 됩니다.
System.out.print(""내용");
그리고 위와 같이 하면 "내용"이라는 글자가 출력되게 됩니다..
System.out.print("\/"); 을 하게 되면 아무런 내용없이 한줄 줄넘김이 됩니다.
예를 들어
System.out.print(""내용\n내용");
이라 작성을 하였다고 하면
"
내용
내용
"
과 같이 출력이 됩니다.
다른 활용은
System.out.println("홍길동 " + "부산 " + "안녕");
와 같이 입력하게 되면
"홍길동 부산 안녕"
과 같이 출력이 됩니다.
print문에서 () 안에 "" 안에 내용을 작성하면 화면에 출력이 되고, 그 글자와 글자는 + 기호
(연결자)를 통해 연결이 가능합니다.
이것만 보았을 때는 별로 활용도를 못느끼겠지만,
예를 들어
변수 a에 20이라는 값이 저장이 되고 그것을 글자와 글자 사이에 넣어서 출력을 하고자 할 때 활용이 가능합니다.
System.out.println("홍길동 " + a + "안녕");
과 같이 입력하게 되면
"홍길동 20안녕"
으로 출력이 가능합니다.
다음으로 print문으로 연산과정을 수행할 수 있습니다.
예를 들면
System.out.println(100 + 200);
와 같이 입력이 가능하며
해당 내용으로 입력했을 경우 출력은 100+200이 연산처리가 된 값인
"300"
으로 출력이 됩니다.
연산을 원할 경우 "" 없이 입력을 하면 되며,
System.out.println("100 + 200"); 와 같이 "" 안에 넣었을 경우
"100 + 200"
과 같이 연산처리가 되지 않는 모습으로 출력이 됩니다.
활용하면
System.out.println("100 + 200 = " + (100+200));
"100 + 200 = 300"
이 출력됩니다.
System.out.print();
가 기본 형태 입니다.
여기에 System.out.println();으로 하면 줄넘김이 가능하죠..
그리고 앞에서 보았듯이 여기에 무언가를 적게 되면 화면에 출력하게 됩니다.
System.out.print(""내용");
그리고 위와 같이 하면 "내용"이라는 글자가 출력되게 됩니다..
System.out.print("\/"); 을 하게 되면 아무런 내용없이 한줄 줄넘김이 됩니다.
예를 들어
System.out.print(""내용\n내용");
이라 작성을 하였다고 하면
"
내용
내용
"
과 같이 출력이 됩니다.
다른 활용은
System.out.println("홍길동 " + "부산 " + "안녕");
와 같이 입력하게 되면
"홍길동 부산 안녕"
과 같이 출력이 됩니다.
print문에서 () 안에 "" 안에 내용을 작성하면 화면에 출력이 되고, 그 글자와 글자는 + 기호
(연결자)를 통해 연결이 가능합니다.
이것만 보았을 때는 별로 활용도를 못느끼겠지만,
예를 들어
변수 a에 20이라는 값이 저장이 되고 그것을 글자와 글자 사이에 넣어서 출력을 하고자 할 때 활용이 가능합니다.
System.out.println("홍길동 " + a + "안녕");
과 같이 입력하게 되면
"홍길동 20안녕"
으로 출력이 가능합니다.
다음으로 print문으로 연산과정을 수행할 수 있습니다.
예를 들면
System.out.println(100 + 200);
와 같이 입력이 가능하며
해당 내용으로 입력했을 경우 출력은 100+200이 연산처리가 된 값인
"300"
으로 출력이 됩니다.
연산을 원할 경우 "" 없이 입력을 하면 되며,
System.out.println("100 + 200"); 와 같이 "" 안에 넣었을 경우
"100 + 200"
과 같이 연산처리가 되지 않는 모습으로 출력이 됩니다.
활용하면
System.out.println("100 + 200 = " + (100+200));
"100 + 200 = 300"
이 출력됩니다.
java]03] 자동완성
프로그램을 하다보면 많은 것을 적어야 하는데
매번 키보르를 치려다 보면 정말 힘듭니다.
예를 들어
System.out.println();
와 같이 자주 사용하는 문장의 경우
대소문자를 구별해가며 -맨앞에 S자를 대문자로 해야지 소문자로 하면 오류-
입력하기란 여간 귀찮은 일이 아닙니다.
그래서 이클립스라는 프로그램에서는 자동완성 기능을 지원하고 있는데.
sysout를 누르고 Ctrl+space를 누르면 System.out.println(); 과 같은 형태로 변경되어 버립니다.
여러 단어를 적어야 할 경우 몇글자로 줄일 수 있으니 시간도 절약되고 오타도 줄일 수 있으니 1석 2조의 결과 입니다.^^
그러나 너무 애용하지는 마세요...
애용하다보면 어느 순간 스펠링이 생각이 안나...요...ㅠㅠ
java]02] 출력문과 주석문
System.out.println("출력문입니다.");
System.out.println("***");
위와 같은 문구는 화면에 출력할때 사용하는 형식으로
print 뒤에 ln이 붙으면 출력 후 줄바꿈을 하게 되고,
ln를 제거하면 출력 후 줄바꿈을 하지 않는다.
예를 들어
System.out.println("출력문입니다.");
System.out.println("출력문입니다.");
위와 같이 2줄을 연달아 작성하였다면
출력문입니다1
출력문입니다2
위와 같이 2줄이 출력이 될 것이고,
System.out.print("출력문입니다1");
System.out.print("출력문입니다2");
위와 같이 ln을 제거하고 작성하게 되면
출력문입니다1출력문입니다2
위와 같이 출력될 것 입니다.
****
주석문...
작성중 적용을 제외시킬 것이 있을 때 혹은
해당 내용에 대해 메모를 해야할 일이 있을 경우 사용하는 것으로
차후 작성자 혹은 타인이 보았을 때 알아보기 쉽게 하기 위해 작성한다.
메뉴얼과 비슷한 느낌이라 생각하면 될 것 같다.
System.out.println("출력문입니다1");
System.out.println("출력문입니다2");
System.out.print("출력문입니다1");
System.out.print("출력문입니다2");
예를 들어 위와 같이 적은 것에 주석문을 삽입한다고 하면
System.out.println("출력문입니다1"); /*줄바꿈이 일어난다.*/
System.out.println("출력문입니다2"); /*한줄 뛰운 효과*/
//적어도 영향이 없습니다.
System.out.print("출력문입니다1"); /*줄바꿈이 일어나지 않는다*/
System.out.print("출력문입니다2"); /*여기에 적으면 영향이 없다.*/
위와 같이 적을 수 있으며...
형식은 아래와 같다.
/*
적을 내용
*/ <--- 요 사이에 들어간 것만 주석처리
적을 내용
*/ <--- 요 사이에 들어간 것만 주석처리
//적어도 영향이 없습니다. <--- 한줄만 주석처리.
이번은 간단한 출력문과 주석에 대해 알아봤습니다.^^
2017년 2월 21일 화요일
Java]01 메모장에 작성하여 java를 출력하기.
java를 출력하기
class test1{
public static void main(String[] args){
system.out.println("java");
system.out.println("java1");
system.out.println("java2");
}
}
1. 메모장으로 내용을 입력한 후 다른이름으로 저장 test1.java
2. cmd창에서 파일 위치를 찾아 들어간 후 javac test1.java입력하여 컴파일
3. java test1.class파일이 만들어짐.
4. java test1을 입력하여 메모장에 프로그램한 내용을 출력.
HTML]추천 사이트
한글입숨 | 설명 : 한글로 된 의미 없는 문장들을 생성하는 곳 |
영문입숨 | 설명 : 영문으로 된 의미 없는 문장들을 생성하는 곳 |
html5 gallery | 설명 : html5로 만들어진 홈페이지들을 볼 수 있는 곳 |
5day | 설명 : 웹디자인 길잡이 - 여러가지 디자인을 볼 수 있는 곳 |
w3schools | 설명 : http://www.w3schools.com |
무료이미지 사이트 | pixabay.com ww7.moguefile.com |
HTML]02]html 기본 태그
[<strong>,</strong>and<mark>,</mark>를 적용]
<html> - 웹문서의 시작을 알림
<head> - 머리말, 문서의 전반적인 설정을 하는 부분
<title> - 제목, 브라우저 탭에 나타나는 제목.
<body> - 본문. 방문자에게 보여주고자 하는 내용이 들어가는 부분
[<i>,</i>를 적용]
[<b>,</b>를 적용]
<br> - 줄을 바꾸는 태그,종료태그가 없이 단독으로 쓰이며 중복 적용이 가능하다.
<hr> - 수평선을 나타내는 태그, 종료태그가 없이 단독으로 쓰임.
<b>,</b> - 글자를 볼드체(굵은 글씨)로 만드는 태그.
<strong>,</strong> - 중요하다는 의미를 지닌 볼드체로 만드는 태그. 위의 것과 효과는 동일하나 좀 더 중요하다는 것을 강조할 때 사용.
<i>,</i> - 글자를 이탤릭체(기울인 글꼴)로 만드는 태그
<em>,</em> - 강조한다는 의미를 지닌 이탤릭체로 만드는 태그
<ins>,</ins> - 글자 아래에 밑줄이 생김. 새롭게 추가한 내용이라는 의미를 지닌 태그.
<del>,</del> - 글자 중간에 가로지르는 줄이 생김.
<mark>,</mark> - 마크펜을 칠한 듯한 효과를 나타냄. 형광펜 효과
<small>,</small> - "작은 글자"가 적용.
<sub>,</sub> - 아랫 첨자를 적용. 예시) H2O
<sup>,</sup> - 윗 첨자를 적용. 예시) 3000km2
- 글자 사이에 공란, 가로 띄우기를 하는 태그, 중복적용이 가능하며, 한글은 태그 두개가 모여 한 글자가 떨어진다.
[<em>,</em>를 적용]
예약어를 나태내는 태그들(HTML Entities)
(link :
< - 여는 각괄호 --- <
> - 닫는 각괄호 --- >
& - 앤드 기호 --- &
" - 쌍따옴표 --- "
© - copyright --- ©
® - registered trademark --- ®
™ - trademark --- ™
HTML]01]html 기본 틀
<!DOCTYPE HTML>
<html>
<head>
<title>HTML기본태그</title>
</head>
<body>
<!--
안녕하세요
html 기본 태그를 확인합니다.
-->
</body>
</html>
기본적으로 위와 같은 형태의 틀로 이루어져 있으며,
<title>과 같이 시작이 있으면 </title>과 같이 끝을 지정해 주어야 한다.
<html>,<head>,<body>도 마찬가지.
1. <title> 부분은 웹페이지의 상단 제목표시줄에 표시되는 부분
2. <body> 부분은 화면에 표시할 본문 내용들을 적는 부분
아래와 같이 표시된다.
피드 구독하기:
글 (Atom)