문제

✏️ boolean형 배열 isChecked를 선언하세요. isChecked에 true, false, true를 new연산자없이 할당하세요.

 

결과

 boolean[] isChecked = {true, false, true};

 

변수를 선언하고 위처럼 "{ }"안에 " , "(쉼표)"값을 구분해서 넣을 수 있다.

 

위 경우에는 크기가 3인 배열이다. 

문제

✏️ long형 배열 longNumbers에 크기 3인 배열을 만든 후, 할당하세요.
✏️ long형 배열 longNumbers에 크기 3인 배열을 만든 후, index 2번째를 출력해보세요.

 

 

결과

 

long[] lognNumbers = new long[3];
System.out.println(lognNumbers[1]);

배열을 선언하고 을 지정해주지 않으면 "0"으로 표시된다.

문제

✏️ int형 배열 numbers를 선언하세요
✏️ int형 배열 numbers는 기본타입인가요? 참조형
✏️ int형 배열 numbers에 크기 10인 배열을 만든 후, 할당하세요.
✏️ int형 배열 numbers의 2번째에 숫자 3을 할당하세요

 

결과

 

int[] numbers;// int형 배열 numbers를 선언!
numbers = new int[10];// 크기 10인 배열을 만든 후, 할당
numbers[1] = 3;// 2번째 숫자(index 1)에 숫자 3을 할당.

 

기본타입으로 선언된 변수일지라도 주소값을 가지느 참조타입이다!

문제

✏️ 각 기본형 타입별 배열을 모두 선언해보세요. int, byte, boolean 등

 

결과

 

//-----정수형----------
byte[] a=new int[];
short[] b=new short[];
int[] c=new int[];
long[] d=new long[];

//-----논리형----------
boolean[] e=new boolean[];

//-----실수형----------
float[] f=new float[];
double[] g=new double[];

//-----문자형----------
char[] h=new char[];

🟩 배열이란? 

  • 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
  • 많은 양의 데이터를 저장하기 위해 사용함
  • 쉽게 말해서 임시저장소이다.
  • 값 로드하기, 값 위치 찾기, 배열이동, 값 바꾸기, 값 이동하기... 등등 여러 가지 방법으로 사용된다.
  • 배열은 기본형 변수를 사용해도 참조형 객체라고 한다.
  • 인덱스(index)의 범위0부터 '배열길이-1'까지!

 

byte[] a=new int[];
short[] b=new short[];
int[] c=new int[];
long[] d=new long[];
boolean[] e=new boolean[];
float[] f=new float[];
double[] g=new double[];
char[] h=new char[];

 기본형 타입의 배열 선언 방법

 

int[] numbers;// int 형 변수의 numbers라는 배열 선언.
numbers = new int[10];// numbers에 크기 10인 배열 할당.
numbers[1] = 3; // numbers의 2번째에 숫자 3을 할당.
int[ ] kors = {1, 2, 3}

 

위에 방식처럼 다르게 배열을 선언할 수 있다.


✅ 간단 퀴즈 #1
   파일에서 값 90을 찾아서 그 값을 1번째 위치 값과 바꾸어 저장하시오.
   
   100 23 46 82 57 90 50 46 80 20 50 70

 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.util.Scanner;

public class array {
	public static void main(String[] args) throws IOException {
		int[] nums = new int[100];// 숫자 저장 공간

		int size=0;//데이터 Size측정
		
		// 값 로드하기
		{
			FileInputStream fis = new FileInputStream("JavaPrj/res/Data/data.txt");
			Scanner sc = new Scanner(fis);
			
			for (int i = 0; sc.hasNext(); i++) {
				nums[i] = sc.nextInt();
				size++;
			}
			sc.close();
			fis.close();
		}

		//nums 출력하기
		//100, 23, ...70
		{
			for(int i=0;i<size;i++)
				System.out.printf("%3d ",nums[i]);
		}
		System.out.println();

		int index = -1;// index가 0부터 시작하면 배열에서 0값으로 인식할 수 있어서 범위 밖에있는 값 지정.
		// 위치 찾기
		{
			for (int i = 0; i < size; i++)
				if (nums[i] == 90) {
					index = i;
					break;//효율을 위해서!
				}
		}

		// 값 바꾸기
		{
			int temp; //temp라는 변수는 이 구역에서만 사용해서 여기에 변수를 선언했음
			temp = nums[index]; //temp에 nums[5](90)을 저장함.
			nums[index] = nums[0]; //nums[5]에 nums[0](100)을 저장함.
			nums[0]=temp; // nums[0]에 90을 저장함. 
		}

		// 값 저장하기
		{
			FileOutputStream fos = new FileOutputStream("JavaPrj/res/Data/data.txt");
			PrintWriter fout = new PrintWriter(fos, true, Charset.forName("UTF-8"));
			
			//파일 출력
			for(int i=0;i<size;i++)
				fout.printf("%d ",nums[i]);
			
			//콘솔 출력 
			for(int i=0;i<size;i++)
				System.out.printf("%3d ",nums[i]);
			
			fout.close();
			fos.close();
		}

		
	}
}

 

주제와 조금 벗어난 이야기지만 여기서 "//값 바꾸기"에 대해서 조금 더 자세히 알아보자.

 

// 값 바꾸기
		{
			int temp; //temp라는 변수는 이 구역에서만 사용해서 여기에 변수를 선언했음
			temp = nums[index]; //temp에 nums[5](90)을 저장함.
			nums[index] = nums[0]; //nums[5]에 nums[0](100)을 저장함.
			nums[0]=temp; // nums[0]에 90을 저장함. 
		}

사람한테 "100 23 46 82 57 90" 이런 숫자를 주고, 두 숫자의 자리를 바꾸라고 하면 지우개로 지우고 다시 쓰면 될 거다.

 

반면 컴퓨터는 사람처럼 지우개로 지우고 다시 쓸 수 없다. 그래서 "temp"라는 임시 저장소를 만들어서 "저글링"하듯 값을 돌려주면 된다.

 

이 그림을 보면 이해하기 쉬울것이다.

 

  1. temp라는 변수를 새로 선언한다.
  2. tempnums[5](90)을 저장해준다. num[5]temp에 값을 넘겨주고 num[5]를 temp처럼 사용할 수 있다.
  3. nums[5]nums[0](100)을 저장한다.
  4. nums[0]90을 저장한다.

 


 

문제

✏️for문을 이용하여  구구단 표를 출력해보세요.
구구단 결과 값이 홀수일 때만 출력해보세요.
예를들면, 다음과 같습니다. 3 * 2, 3*  4 의 결과 값이 짝수이기 때문에 생략해요.
3 * 1 = 3
3 * 3 = 9
3 * 5 = 15

문제 해설

https://beastit.tistory.com/63

 

[JAVA] ✏️ for문을 이용하여 다음처럼 구구단 표를 출력해보세요.

✅문제 ✏️for문을 이용하여 다음처럼 구구단 표를 출력해보세요.(단! for문에 index넘버는 바꾸지 마세요) 2 * 1 = 2 2 * 2 = 4 . 9 * 9 = 81 ✅문제 해설 인덱스 넘버를 바꾸지 않고 해야 해서 일정한 규

beastit.tistory.com

 

  • 앞에 작성한 구구단 코드 기반으로 print문에 조건을 걸어서 홀수일때만 나오게 작성한다.
public static void main(String[] args) {
		int result =0;
		for (int i = 0; i < 9; i++) {
			if(i==8)
				break;
			for (int j = 0; j < 9; j++) {
				result=(i+2)*(j+1);
				if(result%2!=0)
					System.out.printf("%d * %d = %d\n", i + 2, j + 1, result);
				else 
					continue;
			}
			System.out.println();
		}
	}// end main

결과

+ Recent posts