int []a = new int [5]; // 배열 선언 및 메모리 할당

a[0]=10; a[1]=50; a[2]=25; a[3]=30; a[4]=40;

 

// 배열이 가지고 있는 값 전체 출력의 방법- 1

for(int i=0; i<a.length; i++) {

System.out.print(a[i]+"  ");

}

 

// 전체 출력의 방법- 2

for(int n: a) {

System.out.print(n+"  ");

}

 

향상된 for문은 배열이 가지고 있는 수만큼 반복 실행을 해준다,

for(자료형 변수 : 배열 등 컬렉션) {

//실행문

}

int []a = new int[5];
System.out.println("배열 요소의 개수 : " +a.length); // 배열 a의 길이

a[0]=2;
a[1]=4;
a[2]=6;
a[3]=8;
a[4]=10;

int s=0;

for(int i=0; i<a.length; i++) {  
// i가 배열에 들어있는 모든 수를 더해야 하므로 
//배열a의 길이보다 작으면 계속 i++
s+=a[i]; // 합을 계속 더해줌
System.out.print(a[i]+"  "); // 배열에 들어있는 값은 계속 출력해줌
}

System.out.println("\n합 : " + s);

int []arr; // 정수값을 저장할 수 있는 배열을 선언. 선언만 하고 메모리는 할당하지 않은 상태
arr = new int[5]; // 5개의 정수를 저장할 수 있도록 메모리를 할당함.

// 배열명 = new 자료형[크기]
// 크기는 int형이고 음수값은 런타임오류.
// 위 두줄은 [배열선언 및 메모리 할당] 인데 이것은 한줄로 표현이 가능하다.

int []arr = new int[5];
// 5칸의 배열이 생기는데 arr[0], arr[1], arr[2], arr[3], arr[4] 까지 사용이 가능하다. 
// 0부터 시작에 주의.
// 배열은 메모리 할당 후 각 요소에 초기값을 대입하지 않은 경우 0으로 초기화된다.

arr[2] = 10;
arr[4] = 5;
System.out.println(arr[0]); // 일시에 0에 들어있는 값은 0.
System.out.println(arr[2]); // 여기는 위에서 2에 10을 넣었기 때문에 10.
System.out.rpintln(arr[5]); // 이것은 런타임오류
// 첨자의 범위를(0부터 4까지) 벗어났기 때문이다.

소수 ? 1과 자기자신의 수로만 나눠지는 수. (1제외)

int cnt=0; // 한 줄에 10개씩 출력하기 위한 변수

 

jump:

for(int n=2; n=100; n++) { //2부터 시작해서 100까지 

for(int i=2; i<=(n/2); i++){ //

if(n%i==0){ //2로 나누어 떨어지거나 어떤수의 배수로 나눴을때 0이면 소수가 아니기 때문에 다시 첫 번째 for문으로 감.

// 

continue jump;

}

}

System.out.printf("%4d", n); //4칸으로 출력해라.

if(++cnt%10 == 0) {

System.out.println();

}

}

for(int i=1; i<=3; i++) {   // 3번반복

for(int j=1; j<=3; j++) {  // 9번반복

if(i+j==4){

continue;  // i+j가 4면 조건으로 감.

}

System.out.println(i+", "+j);  // (1, 1) (1, 2) (2, 1) (2, 3) (3, 2) (3, 3)

}

}

===========

for(int i=1; i<=3; i++) {   // 3번반복

for(int j=1; j<=3; j++) {  // 9번반복

if(i+j==4){

break;  // i+j가 4면 조건을 끝냄.

}

System.out.println(i+", "+j);  // (1, 1) (1, 2) (2, 1)  따라서 2, 2부터는 나오지 않고

}  // i가 3이 되었을 때도 3+1은 4이므로 뒤는 다 나오지 않음.

}

===========

 

gogo:

for(int i=1; i<=3; i++) { //3번반복

for(int j=1; j<=3; j++) { //9번반복

if(i+j==4) {

continue gogo; // i+j가 4면 gogo로 감.

}

System.out.println(i+ ", "+j); (1, 1) (1, 2) (2, 1) 

}

}

 

===========

gogo:

for(int i=1; i<=3; i++) { //3번반복

for(int j=1; j<=3; j++) { //9번반복

if(i+j==4) {

break gogo; // i+j가 4면 gogo밖으로 나가버림. (끝낸다?의 느낌??)

}

System.out.println(i+ ", "+j); (1, 1) (1, 2) 

}

}

===========

Scanner sc = new Scanner(System.in);

double input, sum;

sum=0;

 

for(int i=0); i<5; i++) {

System.out.print("수 ? ");

input = sc.nextDouble();

if(input <=0.0){

continue; // 0보다 작으면 i++로 간다. 즉 밑에 더하기를 실행하지 않음.

}

sum+=input;

}

System.out.println("결과 : " + sum);

sc.close();

프로그램 예시

 

1. 합 2. 홀수합 3. 짝수합 4. 종료 => 1
원하는 수 ? 10
1~10 합 : 55 

 

이런 프로그램을 작성하시오.

 

입력받은 수, 합계, 프로그램 실행번호

Scanner sc = new Scanner(System.in);

int input, s, program;

 

while(ture){

do {System.out.print("1. 합 2.홀수합 3.짝수합 4.종료 =>");

program=sc.nextInt();

} while(program<1 || program>4);

 

if(program==4){

break;}

}

===========================4를 누르면 종료하는 프로그램을 만듦.

이제 1을 입력하고 숫자를 입력하면 입력한 숫자까지의 합을 구하고

2를 입력하고 숫자를 입력하면 입력한 숫자까지의 홀수합을 구하고

3를 입력하고 숫자를 입력하면 입력한 숫자까지의 짝수합을 구하는 것을 짜야함.

 

if (program ==1) {

System.out.print("원하는 수 ?");

input=sc.nextInt();

for(int num=1; num<=input; num++){

s+=num;

}

} else if (program ==2) {

System.out.print("원하는 수 ?");

input=sc.nextInt();

for(int num=1; num<=input; num+=2){

s+=num;

}

} else  {

System.out.print("원하는 수 ?");

input=sc.nextInt();

for(int num=2; num<=input; num+=2){

s+=num;

}

}

System.out.printf("1 ~ %까지  합 : %d", input, s);

s=0;

}

 

sc.close();

 

선생님께서는 

 

이렇게 하셨다.

변수를 3개를 더 설정함.

String title;

int start, offset;

switch(menu) {

case 1 : title="합 : "; start=1; offset=1; break;

case 2 : title="홀수 합 : "; start=1; offset=2; break;

default : title="짝수 합 : "; start=2; offset=2; break;

}

s=0;

for(int n=start; n<=num; n+=offset) {

s+=n;

}

System.out.println("1~"+num+"까지 "+title+s);

 

내가 짠 코드 보다 훨씬 짧아졌다.

 

이런 생각은 어케하는건지...

for(int i=1; i<=3; i++) {  // i가 1부터 3까지 총 3번 반복

for(int j=1; j<=3; j++) {

// i가 1일때 j 1부터 3까지 3번 반복, i가 2일 때 j 1부터 3까지 반복, i가 3일때 j 1부터 3까지 반복

if(i+j)==4{ // 근데 i+j의 합이 4이면 for문을 나가고 j 더이상 실행x

break;}

}

System.out.println(i+", "+j); // (1, 1) (1, 2) (2, 1) 가 나옴. 

}

 

ga:

for(int i=1; i<=3; i++) {

for(int j=1; j<=3; j++) {

if(i+j == 4){ // i+j 의 합이 4이면 ga를 나가라.

break ga;} 

}

System.out.println(i+ ", "+j); // (1, 1) (1, 2) 

}

 

+ Recent posts