본문 바로가기

자바 JAVA

for문 예제 풀이 - 자바 기초

반복제어문을 통해 동일한 코드를 여러번 타이핑할 필요없이 반복실행할 수 있다.
반복제어문에는 for문과 while문이 있다.


for문의 기본형식

for(초기식; 조건식; 증감식)
{
	반복실행할 문장;
}

다음과 같이 무한루프로 사용할 수도 있다.

for( ; ; )
{
	반복실행할 문장;
}

  문제) for문을 이용하여 출력하는 프로그램

(출력할 때 사용하는 변수는 i 만 사용)
실행결과) 1
             2
             3
             4
             5
             12345

package sample;

public class Sample
{
	public static void main(String[] args)
	{
		int i;

		for( i=1; i<=5; i++)
		{
			System.out.println(i);
		}

		for( i=1; i<=5; i++)
		{
			System.out.print(i);
		}
	}
}

  문제) for문을 이용하여 출력하는 프로그램

(숫자는 오른쪽정렬로)

실행결과) 1부터  1까지의 합 :  1
             1부터  2까지의 합 :  3
             1부터  3까지의 합 :  6
             1부터  4까지의 합 : 10
             1부터  5까지의 합 : 15
             1부터  6까지의 합 : 21
             1부터  7까지의 합 : 28
             1부터  8까지의 합 : 36
             1부터  9까지의 합 : 45
             1부터 10까지의 합 : 55

package sample;

public class Sample
{
	public static void main(String[] args)
	{
		int i, sum = 0;

		for( i=1; i<=10; i++)
		{
			sum += i;
			System.out.printf("1부터 %2d까지의 합 : %2d\n", i, sum);
		}
	}
}

  문제) for문을 이용하여 출력하는 프로그램

(숫자 사이공간은 탭을 이용)
실행결과) 1      10
             2      9
             3      8
             4      7
             5      6
             6      5
             7      4
             8      3
             9      2
            10      1

package sample;

public class Sample
{
	public static void main(String[] args)
	{
		int i;

		for( i=1; i<=10; i++)
		{
			System.out.println(i+"\t"+(11-i));
		}
	}
}

  문제) 10이하의 정수를 입력받아 정수만큼 "JAVA 프로그래밍" 이라고 출력하는 프로그램

입력예) 5
출력예) JAVA 프로그래밍
          JAVA 프로그래밍
          JAVA 프로그래밍
          JAVA 프로그래밍
          JAVA 프로그래밍

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int i;
		int a = scn.nextInt();

		if(a>0 && a<11)
		{
			for( i=1; i<=a; i++)
			{
				System.out.println("JAVA 프로그래밍");
			}
		}

		else
		{
			System.out.print("입력값이 잘못되었습니다.");
		}
	}
}

  문제) 대문자를 'A'부터 'Z'까지 출력하는 프로그램

(for문으로 char타입변수 1개만 사용)
출력예) ABCDEFGHIJKLMNOPQRSTUVWXYZ

package sample;

public class Sample
{
	public static void main(String[] args)
	{
		int i;
		char a = 'A';

		for( i=a; i<='Z'; i++)
		{
			System.out.printf("%c",i);
		}
	}
}

  문제) 1부터 20까지의 홀수를 차례대로 출력하는 프로그램

출력예) 1 3 5 7 9 11 13 15 17 19

package sample

public class Sample
{
	public static void main(String[] args)
	{
		int i;

		for( i=1; i<=19; i++)
		{
			if(i%2!=0)
			{
				System.out.print(i+" ");
			}
		}
	}
}

  문제) 정수를 입력받아 1부터 입력받은 수까지의 합을 출력하는 프로그램

입력예) 10
출력예) 55

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int i, sum = 0;
		int a = scn.nextInt();

		if(a>1)
		{
			for( i=1; i<=a; i++)
			{
				sum += i;
			}

			System.out.print(sum);
		}
		else
		{
			System.out.print("입력값이 잘못되었습니다.");
		}
	}
}

  문제) 정수를 입력받아 입력받은 정수부터 100까지의 합을 출력하는 프로그램 (100이하 정수만 입력받는다 가정)

입력예) 95
출력예) 585

package sample
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int i, sum = 0;
		int a = scn.nextInt();

		for( i=a; i<=100; i++)
		{
			sum += i;
		}

		System.out.print(sum);
	}
}

  문제) 10개의 정수를 입력받아 그 수들 중 짝수의 개수가 몇개인지 출력하는 프로그램

입력예) 15 22 3 129 66 81 35 1 46 888
출력예) 입력받은 짝수는 4개입니다.

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int i, a, cnt = 0;

		for( i=1; i<=10; i++)
		{
			a = scn.nextInt();

			if(a==0)
			{
				continue;
			}
			if(a%2==0)
			{
				cnt++;
			}
		}

		System.out.printf("입력받은 짝수는 %d개입니다.", cnt);
	}
}

  문제) 10개의 정수를 입력받아 3의 배수의 개수와 5의 배수의 개수를 각각 출력하는 프로그램

입력예) 10 15 36 99 100 19 46 88 87 13
출력예) 3의 배수 : 4
          5의 배수 : 3

package sample;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);
		int i, a, cnt3 = 0, cnt5 = 0;

		for( i=1; i<=10; i++)
		{
			a = scn.nextInt();

			if(a%3==0)
			{
				cnt3++;
			}
			if(a%5==0)
			{
				cnt5++;
			}
		}

		System.out.printf("3의 배수 : %d\n5의 배수 : %d", cnt3, cnt5);
	}
}

  문제) 입력받은 정수만큼 성적을 입력받아서 총점과 평균을 출력하는 프로그램

평균은 소수 첫째자리까지 출력.
입력예) 90 85 100 66 88
출력예) 총점 : 429
          평균 : 85.8

package sample

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int i, scr, sum = 0, cnt = 0;

		System.out.print("몇명의 성적을 입력받을 것입니까? : ");
		int a = scn.nextInt();

		for( i=1; i<=a; i++)
		{
			scr = scn.nextInt();

			sum += scr;
			cnt++;
		}

		System.out.printf("총점 : %d\n평균 : %.1f", sum, (double)sum/cnt);
	}
}

  문제) 값을 입력받고 1부터 차례로 누적하여 합을 구하다가 합이 입력받은 수를 넘으면 중단하고 마지막으로 더해진 값과 그때까지의 합을 출력하는 프로그램 

입력예) 1000
출력예) 45 1035

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);
		int i, sum = 0;
		int a = scn.nextInt();

		for( i=1; ; i++)
		{
			if(sum>a)
			{
				break;
			}

			sum += i;
		}

		System.out.print(i-1+" "+sum);
	}
}

  문제) 정수 n을 입력받고 1부터 홀수를 차례대로 더해 나가면서 합이 n 이상이면 그 떄까지 더해진 홀수의 개수와 그 합을 출력하는 프로그램 

입력예) 100
출력예) 10 100 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);
		int i, sum = 0, cnt = 0;
		int n = scn.nextInt();

		for( i=1; ; i+=2)
		{
			if(sum>=n)
			{
				break;
			}

			sum += i;
			cnt++;
		}

		System.out.print(cnt+" "+sum);
	}
}