초기값;
while(최종조건식) {
반복시킬 명령어(들);
증감식;
}
초기값;
do {
반복시킬 명령어(들);
증감식;
} while(최종조건식); //하나의 덩어리
for (int i=1; i<=5; i++) {
명령1;
명령2;
if(조건)
continue;
명령3; //continue를 만나면 i++인 증감식을 다음으로 실행하고, 명령 3,4는 실행되지 않는다.
명령4;
}
사용자에게 임의의 수 n을 받아 다음과 같이 n!을 구하여 출력하는 프로그램
n을 입력하세요: 5
5*4*3*2*1 = __
import java.util.Scanner;
public class FactorialPractice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
int sum=1;
System.out.print("n을 입력하세요: ");
n = sc.nextInt();
int i=n; //i의 초기값이 n부터 시작
while(i>=1) { //i가 1보다 크거나 같을때에
sum *= i; //i를 곱한 값을 누적
System.out.print(i);
if(i != 1) {
System.out.print("*");
}
i--;
}
System.out.print("=" + sum);
}
}
중첩 while문을 이용하여 다음과 같이 동작하는 프로그램을 작성하세요.
줄 수를 입력하세요: 3
칸 수를 입력하세요: 5
*****
*****
*****
import java.util.Scanner;
public class StarPractice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, b;
System.out.print("줄 수를 입력하세요: ");
a = sc.nextInt();
System.out.print("칸 수를 입력하세요: ");
b = sc.nextInt();
int i = 1;
while (i <= a) { //1부터 입력받은 줄 수 a만큼 실행
int j = 1;
while (j <= b) { //1부터 입력받은 칸 수 b만큼 실행
System.out.print("*");
j++;
}
System.out.println("");// 위쪽 while문을 탈출하면 다음 줄로 넘어감.
i++;
}
}
}
do~while문을 이용하여 2단부터 9단까지의 구구단을 모두 출력
public class GugudanAllDoWhilePractice {
public static void main(String[] args) {
int i = 2;
do {
System.out.println(i + "단");
int j = 1;
do {
System.out.println(i + "*" + j + "=" + (i * j));
j++;
} while (j <= 9);
i++;
System.out.println("------------------------------------------------");
} while (i <= 9);
}
}
자신이 선택한 로또번호 6개를 배열에 저장하고 출력하는 프로그램을 작성
(1~45 숫자 중 6개 선택)
package day0331;
public class LottoPractice {
public static void main(String[] args) {
int []n = {6, 10, 21, 24, 35, 43};
for(int i=0; i<n.length; i++) {
System.out.print(n[i] + " ");
}
}
}
{1.0, 2.0, 3.0, 4.0}과 같은 초기값을 가지는 double형의 배열을 생성한다. 모든 배열 요소를 출력한 후에 모든 요소를 더하여 합을 출력하고 요소 중에서 가장 큰 값을 찾아서 출력하는 프로그램을 작성하라.
public class Practice129_10 {
public static void main(String[] args) {
double []data = {1.0, 2.0, 3.0, 4.0};
double sum=0, max=0;
for(int i=0; i<data.length; i++) {
System.out.print(data[i] + " ");
sum += data[i]; //i값을 누적
if(data[i] > max) { //최대값 출력
max = data[i];
}
}
System.out.println();
System.out.println("합은 " + sum);
System.out.println("최대값은 " + max);
}
}
"Hello", "Java", "World"를 가지고 있는 문자열의 배열을 생성해보자. 화면에 배열 요소를 출력하는 프로그램을 작성해본다.
public class Practice130_11 {
public static void main(String[] args) {
String []data = {"Hello", "Java", "World"};
for(int i=0; i<data.length; i++) {
System.out.println(data[i]);
}
}
}
다음과 같이 학생들의 성적을 받아서 배열에 저장했다가 합계와 평균을 구하는 프로그램을 작성하라. -1이 입력되면 반복을 종료한다.
성적을 입력하세요: 10
성적을 입력하세요: 20
성적을 입력하세요: 30
성적을 입력하세요: -1
합계: 60
평균: 20.0
package day0331;
import java.util.Scanner;
public class Practice130_12 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int []data = new int[4];
int total=0;
for(int i=0; i<data.length;) {
System.out.print("성적을 입력하세요: ");
int n = sc.nextInt(); //입력 값을 n에 저장
if(n == -1) { //n이 -1이되면 반복을 종료
break;
} else { //n이 -1이 아니면 n에 값을 넣고 i를 증감
data[i]=n;
i++;
}
}
for(int i=0; i<data.length; i++) {
total += data[i]; //data[i]의 총합
}
double avg = total / (double)data.length; //data[i]값의 평균값
System.out.println("합계: " + total);
System.out.println("평균: " + avg);
}
}
3 6 9 게임을 만들어보자. 369게임은 숫자에 3,6,9가 포함되어 있으면 3,6,9의 개수만큼 박수를 치는 게임이다. 1부터 50까지의 정수에 대하여 369게임을 실행한다.
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 ...
public class Practice128_03 {
// 단순히 3의 배수에 짝을 출력하는 것이 아니라 10의 자리 수와 1의 자리의 각각이 3의 배수인지 판별하여 짝을 출력해야함.
// 만약, i가 한 자리 숫자라면 그 수가 3의 배수인지 판별하여 짝을 출력하거나 아니면 그 숫자를 출력한다.
// 만약, i가 두 자리 숫자라면 10의자리와 1의자리를 각각 구하여
// 10의 자리가 3의 배수이고 1의 자리도 3의 배수라면 '짝짝' 출력
// 그렇지 않고, 10의자리만 3의 배수이거나 1의자리만 3의 배수라면 '짝' 출력
// 10의자리도 3의 배수가 아니고 1의자리도 3의 배수가 아니라면 그 수를 출력
public static void main(String[] args) {
int i = 1;
int n10, n1;// n10은 10의자리를 저장할 변수, n1은 1의자리를 저장할 변수
// 20 1의자리가 0일 때
// 30
do {
n10 = i / 10;
n1 = i % 10;
if (i < 10) { // 1자리 숫자
if (i % 3 != 0) { // 한자리 숫자일 때 3의 배수가 아닌 것은 i를 출력
System.out.print(i + " ");
} else {
System.out.print("짝 ");
}
} else { // 두자리 숫자
// 10의자리 처리
if (n10 % 3 == 0) { // 10의자리가 3의 배수인가?
if (n1 > 0 && n1 % 3 == 0) { // 1의자리도 3의 배수인가? (30도 출력되기때문에 n1>0이라는 조건을 넣어줌)
System.out.print("짝짝 "); // 10의자리, 1의자리 모두 3의 배수일 때 짝짝
} else {
System.out.print("짝 "); // 10의자리만 3의 배수일 때 짝
}
} else { // 10의 자리가 3의 배수가 아닌 경우
if (n1 > 0 && n1 % 3 == 0) { // 1의 자리가 0보다 크고, 1의 자리가 3의 배수일 때 짝
System.out.print("짝 ");
} else {
System.out.print(i + " "); // 10의자리, 1의자리가 3의 배수가 아닌경우 i출력
}
}
// 1의자리 처리
}
i++;
} while (i <= 50);
}
}