JAVA/자바 예제 2019. 6. 19. 23:16

1부터 45까지의 값을 7개 비복원 추출합니다. 

 

[결과]

[코드]

package lotto;

/*<<로또 정보>>
 * 1부터 45까지 7개의 값을 비복원 추출을 한다.
 * 마지막 값은 보너스를 준다.
 * 순서가 있다.
 * */

public class Lotto {
private int[] num;

public Lotto() {
num = new int[7];
}

public int getNum(int index) {
return num[index];
}


public void setNum(int index, int data) {
num[index] = data;
}

public int length() {
return num.length;
}

public static void main(String[] args) {
Lotto l = new Lotto();
for (int i=0;i<l.length();i++) {
l.setNum(i, (int)(Math.random()*45)+1); //무작위의 1-45 값 반환
for (int j=0;j<i;j++) {
if (l.getNum(j)!=l.getNum(i)) { 
} else {i--;} // 앞쪽에 중복된 값이 있으면 다시 실행 /중복제거
}

}
for (int i=0;i<(l.length())-1;i++) {
System.out.print(l.getNum(i)+ " "); // 0번부터 5번까지 출력
}
System.out.print("+ "+ l.getNum(6));  // 보너스 번호 출력

} //end main
}//end class

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 18. 21:38

별로 원하는 사이즈로 사각형,계단,피라미드,다이아몬드 모양을 만드는 코드를 만들어 보았다.

[모양종류]

 

[코드]

import java.util.Scanner;

public class A {

 static void star(char ch) {
Scanner sc = new Scanner (System.in);
int num = sc.nextInt();
int x,y;
switch(num){
case 1 : //사각형 모
Sytem.ut.println("가로 길이");
 x = sc.nextInt();
System.out.println("세로 길이");
 y = sc.nextInt();
for (int i=1;i<=(x*y);i++) {
System.out.print(ch);
if(i%x==0) {System.out.println();}
}
break;
case 2 : //계단모양
System.out.println("계단수");
 x = sc.nextInt();
 for (int i=1; i<=x; i++) {
 for (int j=1; j<=i;j++) {
System.out.print(ch);
}System.out.println();
 }
 break;
case 3 : //역계단모양
System.out.println("계단수");
x = sc.nextInt();
for (int i=1; i<=x; i++) {
for (int j=i; j<=x;j++) {
System.out.print(ch);
}System.out.println();
for (int j=1; j<=i;j++) {
System.out.print(" ");
}
}
break;
case 4 : //피라미드모양
System.out.println("높이");
x = sc.nextInt();
for (int i=1; i<=x; i++) {
for (int j=x; j>i;j--) {
System.out.print(" ");
}
for (int j=1;j<=(2*i-1);j++) {
System.out.print(ch);
}
System.out.println();
}
break;
case 5 : //다이아몬드 모양
System.out.println("다이아몬드 크기");
x = sc.nextInt();
for (int i=1; i<=x; i++) {
for (int j=x; j>i;j--) {
System.out.print(" ");
}
for (int j=1;j<=(2*i-1);j++) {
System.out.print(ch);
}
System.out.println();
}
for (int i=1; i<=x; i++) {
for (int j=1; j<=i;j++) {
System.out.print(" ");
}
for (int j=x; j>=(2*i-2);j--) {
System.out.print(ch);
}System.out.println();

} case 5 : //5번 다이아몬드 모양
System.out.println("다이아몬드 크기");
x = sc.nextInt();
for (int i=1; i<=x; i++) {
for (int j=x; j>i;j--) {
System.out.print(" ");
}
for (int j=1;j<=(2*i-1);j++) {
System.out.print(ch);
}
System.out.println();
}
for (int i=1; i<=x; i++) {
for (int j=1; j<=i;j++) {
System.out.print(" ");
}
for (int j=x; j>=(2*i)-(x-2);j--) {
System.out.print(ch);
}System.out.println();

}break;
default:
System.out.println("에러");
break;
}//end switch
}

public static void main(String[] args) {
System.out.println("1.사각형\t 2.계단\t 3.뒤집힌 계단");
System.out.println("4.피라미드\t 5.다이아몬드");
star('*');
} //end main
}//end class A

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 11. 22:43

[while문]

반복문은 어떤 작업이 반복적으로 실행되도록 할 때 사용됩니다.

반복문의 종류는 3가지로 for문, while문, do-while문이 있습니다.

for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택하셔도 좋습니다.

for문은 반복 횟수를 알고 있을 때, while문은 조건에 따라 반복할 때 주로 사용됩니다.

while문과 do-while문의 차이는 조건을 먼저 검사할지, 혹은 나중에 검사할지 선택하는 것으로 동작 방식은 동일합니다.

 

for문이 정해진 횟수만큼 반복된다면, while문은 조건식이 true일 경우 계속해서 반복됩니다.

[결과]

[코드]

/* 구구단 출력하기
 * 2*1 에서 9*9 까지 값을 출력한다.
 * \t 간격 정리
 */

public class WhileMulti {
public static void main(String[] args) { // 'main'만 적고 자동완성 단축키(ctrl + 스페이스바) 누르고 엔터

int x = 2;
while (x<=9) {
System.out.print(x + "단\t\t");
x++;
}
System.out.println(""); // 'Syso' 까지 적고 자동완성 단축키(ctrl + 스페이스바) 

int i = 1;
while (i<=9) {
int j = 2;
while (j<=9) {
System.out.print(j+" X "+i+" = "+(i*j)+"\t");
j++;
}
i++;
System.out.println("");
}
} //end main
} //end class WhileMulti

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 11. 21:41

[for 문]

for문은 주어진 횟수만큼 실행문을 반복 실행할 때 적합한 반복 제어문입니다.

for문은 또다른 for문을 내포할 수 있는데, 이것을 중첩된 for문이라고 합니다.

이 경우에는 바깥쪽 for문이 한 번 실행될때마다 내부의 for문은 지정된 횟수만큼 반복해서 돌다가 다시 바깥쪽 for문으로 돌아가게 됩니다.

 

[결과물]

 

[코드]

/* 구구단 출력하기
 * 2*1 에서 9*9 까지 값을 출력한다.
 * \t 간격 정리
 */

public class ForMulti {
public static void main(String[] args) {
for (int x=2; x<=9; x++) {
System.out.print(x + "단\t\t");
} //몇단인지 확인
System.out.println();

for (int m=1; m<=9; m++) {
   for (int n=2; n<=9; n++) {
    System.out.print(n + " x " + m + " = " + (n*m) + '\t'); // 한줄씩 값 출력
   }
   System.out.println(""); // 줄변경
}
}
}

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 11. 21:06

[switch문]

자바 프로그램에서 제어문의 종류는 조건문과 반복문이 있습니다.

조건문에는 if문과 switch문이 있고, 반복문에는 for문, while문, do-while문이 있습니다.

if문은 조건식의 결과가 true, false 이렇게 두 가지밖에 없어서 경우의 수가 많아질수록 else-if를 반복적으로 추가해야 해서 코드가 복잡해집니다, 그러나 swich문은 변수의 값에 따라서 실행문이 결정되어 if문보다 코드가 간결해집니다.

 

Math.random() 메소드는 0.0과 1.0 사이에 속하는 난수 하나를 리턴합니다.

0.0    <= Math.random()         <1.0

0.0*6 <= Math.random()         < 1.0*6

0.0    <= Math.random()         < 6.0

0      <= (int)Math.random()    <6

1      <= (int)Math.random()+1 <7

 

case 끝에 break를 적은 이유는 다음 case를 실행하지 말고 switch를 빠져나오라는 뜻입니다. break가 없을 경우 다음 case가 실행됩니다.

[결과]

[코드]

public class SwitchDice {
public static void main(String [] args) {
System.out.println("주사위 번호 뽑기");
int num = (int)(Math.random()*6)+1;  // 주사위 번호 하나 뽑기

switch(num) {
case 1 : //num이 1일 경우
System.out.println("주사위 번호 : 1");
break;
case 2 :
System.out.println("주사위 번호 : 2");
break;
case 3 :
System.out.println("주사위 번호 : 3");
break;
case 4 :
System.out.println("주사위 번호 : 4");
break;
case 5 :
System.out.println("주사위 번호 : 5");
break;
default :
System.out.println("주사위 번호 : 6");
break;
}
}
}

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 10. 23:36

[for 문]

프로그램을 작성하다 보면 똑같은 실행문을 반복적으로 실행해야 할 경우가 많습니다.

for문은 주어진 횟수만큼 실행문을 반복 실행할 때 적합한 반복 제어문입니다.

 

For문 예시로 사각형의 개수가 500개가 넘어갔을때 사각형의 개수와 접은 횟수를 출력하고자 합니다.

한번도 접지 않았을 경우 사각형은 1개, 한번 접었을 경우 사각형은 2개, 두번 접었을 경우 사각형은 4개가 됩니다.

 

[종이 접기]

 

 

[결과물]

 

[코드]

 

/*

 * 종이를 접지 않으면 사각형의 개수 1

 * 종이를 한번 접으면 사각형의 개수 2

 * 종이를 두번 접으면 사각형의 개수 4

 * 

 * 사각형의 개수가 500개가 넘어갔을때 사각형의 개수와 접은 횟수를 출력

*/

 

public class ForExample {
public static void main(String[] args) {
int x=0;  //종이를 접는 횟수
int y=1;  //사각형 개수
for (int i=1; y<=500; i++) {
x++; //종이를 한번 접음
y <<=1; //사각형 개수 증가
}
System.out.println("접는 횟수는 " + x + "입니다." );
System.out.println("사각형 개수는 " + y + "입니다.");
} //end main

}// end class ForExample

posted by 스노(Snow)
: