Java 2일차 등비수열, 등차수열 판단 알고리즘 테스트(+계차수열, 다음 수 예상)

import java.util.Scanner;

public class SequenceTest {

public static void main(String[] args) {

// 숫자를 저장할 배열
int sequence[] = new int[5];
Scanner sc = new Scanner(System.in);

// 공백(space bar)을 기준으로 각 숫자 입력
for(int i=0; i<sequence.length; i++)
sequence[i] = sc.nextInt();

// 등차수열과 계차수열을 판단할 논리형 변수
boolean arithmetic = true;
boolean geometric = true;

// 계차수열의 패턴을 저장할 배열
int sequenceTemp[] = new int[4];

// 각각의 패턴 저장

for(int i=0; i<sequenceTemp.length; i++)
{
sequenceTemp[i] = sequence[i]-sequence[i+1];
}

// 계차수열을 판단할 논리형 변수
boolean difference = true;

// 배열을 처음부터 끝까지 반복(등차수열 확인)
for(int i=0; i<sequence.length-2; i++)
{
// 등차수열임이 성립하면 논리변수에 true, 하나라도 성립하지 않으면 false 후, break 
if(sequence[i]-sequence[i+1] == sequence[i+1]-sequence[i+2])
arithmetic = true;
else
{
arithmetic = false;
break;
}
}

// 배열을 처음부터 끝까지 반복(등비수열 확인)

for(int i=0; i<sequence.length-2; i++)
{
// 등비수열임이 성립하면 논리변수에 true, 하나라도 성립하지 않으면 false 후, break
if(sequence[i+1]/sequence[i] == sequence[i+2]/sequence[i+1])
geometric = true;
else
{
geometric = false;
break;
}
}

// 계차 수열의 패턴이 들어있는 배열을 처음부터 끝까지 반복
for(int i=0; i<sequenceTemp.length-2; i++)
{
// 계차수열임이 성립하면 논리변수에 true, 하나라도 성립하지 않으면 false 후, break
if(sequenceTemp[i]-sequenceTemp[i+1] == sequenceTemp[i+1]-sequenceTemp[i+2])
difference = true;
else
{
difference = false;
break;
}
}

// 다음 수와 함께 출력
if(arithmetic)
System.out.println("다음 수 : "+(sequence[4]-(sequence[0]-sequence[1]))+", 등차추열");
if(geometric)
System.out.println("다음 수 : "+(sequence[4]*(sequence[0]/sequence[1]))+", 등비수열");
if(difference)
System.out.println("다음 수 : "+(sequence[4]-(sequenceTemp[3]-(sequenceTemp[0]-sequenceTemp[1])))+", 계차수열");
if(arithmetic=geometric=difference=false)
System.out.println("등차, 등비, 계차 수열 아님");

}

}