반응형
1. 로또 추첨 번호를 예상하는 프로그램을 작성하세요
-임의의 숫자를 1에서 45까지의 수를 총 6개 추첨하여 당첨번호를 구한다. 
-중복된 숫자는 있으면 안된다. 
import java.util.Arrays;
import java.util.Scanner;

public class Sample1 {
	public static void main(String[] args) {
			
		int[] target = new int[6];
		for(int i = 0; i<6; i++) {
			target[i] = (int)(Math.random()*45)+1;
			if(i > 0) {
				//중복된 번호가 있는지 확인
				for(int j = 0; j < i; j++) {
					if(target[i] == target[j]) {
						i--; //중복일 겨웅 배열 번호를 이전으로 되돌려서 다시 번호 선택하도록 처리
						
						break;
					}				
				}
			}
		}
		//추첨번화 출력
		System.out.print(Arrays.toString(target));
[42, 18, 24, 22, 43, 8]

 

'Study > JAVA' 카테고리의 다른 글

[JAVA] 재귀함수  (0) 2020.06.15
[Java] 조건문 문제풀기-2  (0) 2020.06.15
[Java] 조건문  (0) 2020.06.10
[Java] Arrays 클래스  (0) 2020.06.08
[Java] splite()메소드  (0) 2020.06.07
반응형

1.if~else
홀짝을 구분하는 소스코드

import java.util.Arrays;
import java.util.Scanner;

public class Sample1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("숫자를 입력하세요: ");
		while(sc.hasNext()) {
			int input = sc.nextInt();
			if(input %2 ==0) {
				System.out.println("짝수입니다.");
			}else {
				System.out.println("홀수입니다.");				
			}			
		}
	}
}
숫자를 입력하세요: 
3
홀수입니다.
4
짝수입니다.

2. if~else if
else if 문을 이용해서 홀짝 구분하고 break문으로 반복문 종료해보자

import java.util.Arrays;
import java.util.Scanner;

public class Sample1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("숫자를 입력하세요: ");
		while(sc.hasNext()) {
			int input = sc.nextInt();
			if(input ==0 ) {
				System.out.println("프로그램을 종료합니다.");
				break;
			}else if(input %2 ==0) {
				System.out.println("짝수입니다.");
				break;
			}else{
				System.out.println("홀수입니다.");
				break;
			}			
		}
	}
}

3. switch ~ case
switch ~case문은 변수의 값이나 연산식이 비교값과 정학하게 일치하면 break문을 만나기 전까지 계속해서 실행문을 처리함. 어떤 조건의 결과와 case문의 비교값이 일치하여 실행문이 실행되면 break문을 만나기 전까지는 끝까지 실행됨. 그래서 case문 끝에는 꼭 break문을 적어줘야한다. 
또한 값이 없다면 default문의 실행문이 실행됨.

import java.util.Arrays;
import java.util.Scanner;

public class Sample1 {
	public static void main(String[] args) {
		int in = 5;
		
		switch(in) {
		case 10 :  System.out.println(10);
		case 9 :  System.out.println(9);
		case 8 :  System.out.println(8);
		case 7 :  System.out.println(7);
		case 6 :  System.out.println(6);
		case 5 :  System.out.println(5);
		case 4 :  System.out.println(4);
		case 3 :  System.out.println(3);
		case 2 :  System.out.println(2);
		case 1 :  System.out.println(1);
				break;
		default : System.out.println("1에서 10까지의 수가 아닙니다.");
		}
	}
}
5
4
3
2
1

case문에 값을 2개 이상 넣는 방법을 살펴보자

import java.util.Arrays;
import java.util.Scanner;

public class Sample1 {
	public static void main(String[] args) {
		int in = 5;
		
		switch(in) {
		case 10 :  
		case 9 :  
		case 8 :  
		case 7 : 
		case 6 :  
		case 5 :  System.out.println("홀수입니다.");
				  break;
		case 4 : 
		case 3 : 
		case 2 : 
		case 1 :  
				System.out.println(1);
				break;
		default : System.out.println("1에서 10까지의 수가 아닙니다.");
		}
	}
}
1에서 10까지의 수가 아닙니다.

자바 14에서 multi-label case문이 추가되어 여러개의 비교값ㅇ르 넣을 수 있게 됐다.

import java.util.Arrays;
import java.util.Scanner;

public class Sample1 {
	public static void main(String[] args) {
		int in = 5;
		
		switch(in) {
		case 1,3,5,7,9:
				System.out.println("홀수입니다.");
				break;
		case 2,4,6,8,10:
				System.out.println("짝수입니다.");
		        break;		
		default : System.out.println("1에서 10까지의 수가 아닙니다.");
		}
	}
}
홀수입니다.

 

'Study > JAVA' 카테고리의 다른 글

[Java] 조건문 문제풀기-2  (0) 2020.06.15
[JAVA] 조건문 문제풀기  (0) 2020.06.15
[Java] Arrays 클래스  (0) 2020.06.08
[Java] splite()메소드  (0) 2020.06.07
[Java] 반복문 - 문제풀이  (0) 2020.06.07
반응형

1. Arrays.toString()
1차원 배열 까지는 toString()메소드로 문자열 출력. 하지만 2차원 이상의 배열은 deepToString()메소드로 출력한다. 

public class Sample1 {
	public static void main(String[] args) {
		int[] num1 = {1,2,3};
		int[][] num2 = {
				{1,2,3},{4,5,6},{7},{8,9,10}
		};
		
		System.out.println(num1 + " -배열 자체는 내용을 확인할 수 없다. ");
		System.out.println(Arrays.toString(num1) + " - Arrays.toString()");//1차원 배열
		System.out.println(Arrays.deepToString(num2) + " - Arrays.deepToString()"); //2차원 배열 출력		
	}
}
[I@2f92e0f4 -배열 자체는 내용을 확인할 수 없다. 
[1, 2, 3] - Arrays.toString()
[[1, 2, 3], [4, 5, 6], [7], [8, 9, 10]] - Arrays.deepToString()

 

2. Arrays.equals()
배열간의 내용이 같은지를 비교. 같으면 true, 다르면 false값 반환

import java.util.Arrays;

public class Sample1 {
	public static void main(String[] args) {
		
		int[] correct = {1,2,3,4,1,4,2,5,2};
		
		int[][] answers = {
				{1,2,3,4,5,6,2,5,2},
				{1,1,5,6,8,9,2,5,2},
				{2,3,5,6,5,7,2,5,2},
				{1,2,3,4,1,4,2,5,2},//정답
				{2,3,6,7,5,6,2,5,2},				
		};
		
		//정답찾기
		int no = 0; //학생번호
		for(int[] answer: answers) {
			no++;
			if(Arrays.equals(correct, answer)) {
				System.out.printf("%d번 학생이 맞췄습니다.\n", no);
			}else {
				System.out.printf("%d번 학생은 틀렸습니다.\n", no);
			}			
		}
	}
}
1번 학생은 틀렸습니다.
2번 학생은 틀렸습니다.
3번 학생은 틀렸습니다.
4번 학생이 맞췄습니다.
5번 학생은 틀렸습니다.

 

3. Arrays.copyOf()
배열을 똑같이 복사하되, 지정한 길이까지 정해서 복사할 수 있다, 무조건 처음부터 입력한 배열의 길이까지 복사.
만약 시작의 위치도 정해서 복사하고 싶다면 Arrays.copyOfRange() 메소드를 활용한다.

import java.util.Arrays;

public class Sample1 {
	public static void main(String[] args) {
		
		String[] name1 = new String[] {"steve" , "tom", "james", "mike", "bob", "oliver"};
		
		String[] name2 = Arrays.copyOf(name1, name1.length-1);
		String[] name3 = Arrays.copyOf(name1, name1.length-2);
		String[] name4 = Arrays.copyOf(name1, name1.length-3);
		String[] name5 = Arrays.copyOf(name1, name1.length-4);
		
		System.out.println(Arrays.toString(name1));
		System.out.println(Arrays.toString(name2));
		System.out.println(Arrays.toString(name3));
		System.out.println(Arrays.toString(name4));
		System.out.println(Arrays.toString(name5));
		
		System.out.println("\n첫 번째와 마지막 요소를 제거하고 복사하여 출력");
		String[] name6 = Arrays.copyOfRange(name1, 1, name1.length-1);
		System.out.println(Arrays.toString(name6));		
	}
}
[steve, tom, james, mike, bob, oliver]
[steve, tom, james, mike, bob]
[steve, tom, james, mike]
[steve, tom, james]
[steve, tom]

첫 번째와 마지막 요소를 제거하고 복사하여 출력
[tom, james, mike, bob]

 

4. Arrays.sort()
배열의 내용을 오름차순으로 정렬하는 메소드

import java.util.Arrays;

public class Sample1 {
	public static void main(String[] args) {
		
		String[] name1 = new String[] {"tom" ,"steve" ,"oliver" , "james", "mike", "bob"};
		
	
		System.out.println("정렬 전: " + Arrays.toString(name1));
		
		//정렬할 배열을 복사하자
		String[] name2 = Arrays.copyOf(name1, name1.length);
		String[] name3 = Arrays.copyOf(name1, name1.length);
		
		Arrays.sort(name2); //배열의 전체를 정렬
		Arrays.sort(name3, 2, 6); //배열의 일부 범위를 정렬
		System.out.println("전체정렬 후: " + Arrays.toString(name2));
		System.out.println("범위정렬 후: " + Arrays.toString(name3));//3번째 부터 정렬	
	}
}
정렬 전: [tom, steve, oliver, james, mike, bob]
전체정렬 후: [bob, james, mike, oliver, steve, tom]
범위정렬 후: [tom, steve, bob, james, mike, oliver]

'Study > JAVA' 카테고리의 다른 글

[JAVA] 조건문 문제풀기  (0) 2020.06.15
[Java] 조건문  (0) 2020.06.10
[Java] splite()메소드  (0) 2020.06.07
[Java] 반복문 - 문제풀이  (0) 2020.06.07
[Java] 반복문 - for문  (0) 2020.06.07
반응형

splite()메소드는 String 객체에서 제공하는 메소드이다.

-실습-

import java.util.Arrays;

public class Test1 {
	public static void main(String[] args) {
		String names = "현수|민수|정수|민호|태현";
		String arr[]= names.split("\\|");
		System.out.println("|" + Arrays.toString(arr));
		
		String names1 = "현수&민수&정수&민호7태현";
		String arr1[]= names1.split("\\&");
		System.out.println("&" + Arrays.toString(arr1));

		String names2 = "현수$민수$정수$민호$태현";
		String arr2[]= names2.split("\\$");
		System.out.println("$" + Arrays.toString(arr2));
	}
}

'Study > JAVA' 카테고리의 다른 글

[JAVA] 조건문 문제풀기  (0) 2020.06.15
[Java] 조건문  (0) 2020.06.10
[Java] Arrays 클래스  (0) 2020.06.08
[Java] 반복문 - 문제풀이  (0) 2020.06.07
[Java] 반복문 - for문  (0) 2020.06.07
반응형

1.키보드로 부터 숫자를 입력받아서 1부터 입력받은 수만큼의 배열에 담아서
배열의 내용을 반복문 for를 사용하여 출력하세요.

-풀이소스

import java.util.Scanner;

public class Test1 {
	public static void main(String[] args) {
		System.out.println("수를 입력해주세요: ");
		Scanner sc = new Scanner(System.in);
		int input = sc.nextInt();
		
		int[] list = new int[input]; //input 크기(길이)만큼의 리스트 생성
		
		for(int i = 0; i<list.length; i++) { //list에 값 대입
			list[i] = i+1;
		}
		for(int i = 0; i<list.length; i++) {//list값 순서대로 출력
			System.out.println(list[i]);
		}
	}
}

출력화면

1
2
3
4
5

'Study > JAVA' 카테고리의 다른 글

[JAVA] 조건문 문제풀기  (0) 2020.06.15
[Java] 조건문  (0) 2020.06.10
[Java] Arrays 클래스  (0) 2020.06.08
[Java] splite()메소드  (0) 2020.06.07
[Java] 반복문 - for문  (0) 2020.06.07

+ Recent posts