알고리즘
- 어떤 문제를 해결하기 위한 절차로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합
1. 세 값의 최댓값 구하기
- 3개의 정숫값 가운데 '최댓값'을 구하는 프로그램
import java.util.Scanner;
public class Max3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("세 정수의 최댓값을 구합니다.");
System.out.print("a의 값: "); int a = sc.nextInt();
System.out.print("b의 값: "); int b = sc.nextInt();
System.out.print("c의 값: "); int c = sc.nextInt();
int max = a;
if(b>max) max =b;
if(c>max) max = c;
System.out.println("최댓값은"+max+"입니다.");
}
}
- max에 a값을 넣음
- b값이 max보다 크면 max에 b값을 넣음
- c값이 max보다 크면 max에 c값을 넣음
순차(sequential) 구조
- 여러 문장(프로세스)이 순차적으로 실행되는 구조
선택(selection) 구조
- ()안에 있는 식을 평가한 결과에 따라 프로그램의 실행 흐름을 변경하는 if 문
순서도
2. 조건 판단과 분기
- 입력한 정숫값의 부호(양수/음수/0)를 판단하는 프로그램
//입력한 정숫값의 부호(양수/음수/0)를 판단
import java.util.Scanner;
public class JudgeSign {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요: ");
int n = sc.nextInt();
if(n>0)
System.out.println("이 수는 양수입니다.");
else if(n<0)
System.out.println("이 수는 음수입니다.");
}
}
순서도
- 프로그램을 3가지로 분기
- 프로그램 3개로 분기
- n 값이 1이나 2가 아닌 어떤값이라도 C를 출력
...
if(n == 1)
System.out.println("A");
else if(n==2)
System.out.println("B");
else
System.out.println("C");
...
- 프로그램 4개로 분기
- 3개로 분기하는 것처럼 보이지만 n값이 1,2,3 이외의 값이면 아무것도 출력하지 않음
...
if(n==1)
System.out.println("A");
else if(n==2)
System.out.println("B");
else if(n==3)
System.out.println("C");
...