Java, avaliar se a sequência de dígitos é crescente

Boa tarde! Estou a iniciar um curso básico de Java e tenho um problema para resolver, preciso criar um programa que dado um número n, introduzido pelo utilizador, verifique se os seus dígitos estão ordenados de forma crescente, decrescente ou se não estão ordenados.
Ainda não chegamos a dar vectores nem arrays, é suposto apenas usar as condições, operadores e repetições em especial.
Pensei em usar : while (num > 0) {
i *= 10;
i += (num % 10);
num /= 10;
}
Para separar os dígitos mas não sei como compara-los com o anterior de forma a ver se são sempre maiores/menores ou estão desordenados.

Alguém me pode ajudar???
Obrigada!

@Sonia_Santos, não tentou resolver? Poste aí o que tu conseguiu fazer e indique especificamente a dúvida.


A minha dúvida é mesmo seguir o raciocinio. Então o número é composto por vários dígitos ok, separamos o resto. Mas como comparar uns com os outros?

Há várias formas de resolver… Duas delas podem ser:
1 - Forma mais extensa:

import java.util.Scanner;

public class Ordenacao {
	public static void main(String[] args){
		int numero;
		int antecessor;
		int sucessor;
		int contador = -1;
		int valor;
		int teste = 0;
		Scanner leitor = new Scanner(System.in);
		
		System.out.print("Informe o número: ");
		numero = leitor.nextInt();
		valor = numero;
		
		while(valor > 0){
			valor /= 10;
			contador++;
		}
		
		for(int i = 0; i < contador; i++){
			sucessor = numero % 10;
			numero /= 10;
			antecessor = numero % 10;
			
			if(antecessor < sucessor)
				teste += 1;
			else if(antecessor > sucessor)
				teste -= 1;
		}
		
		if(teste == (contador * 1))
			System.out.println("Ordenação crescente");
		else if(teste == contador * -1)
			System.out.println("Ordenação decrescente");
		else
			System.out.print("Não estão ordenados");
	}
}

2 - Forma mais resumida:

import java.util.Scanner;

public class Ordenacao2 {
	public static void main(String[] args){
		int teste = 0;
		String numero;
		Scanner leitor = new Scanner(System.in);
		
		System.out.print("Informe o número: ");
		numero = leitor.next();
		
		for(int i = 0; i < numero.length(); i++){
			if(i < numero.length() - 1){
				if(numero.charAt(i) > numero.charAt(i + 1)){
					teste += 1;

				}else if(numero.charAt(i) < numero.charAt(i + 1))
					teste -= 1;
				
				System.out.println("A: " + numero.charAt(i) + " S: " + numero.charAt(i + 1));
				System.out.println("Teste: " + teste);
			}
		}
		
		if(teste == ((numero.length() - 1) * -1))
			System.out.println("Ordenação crescente");
		else if(teste == (numero.length() - 1) * 1)
			System.out.println("Ordenação decrescente");
		else
			System.out.print("Não estão ordenados");
	}
}

São duas forma de resolver com uma abordagem específica. Pelos testes que fiz, ambas funcionaram a contento, mas não fiz um teste exaustivo. Então use somente como um “norte” e não como resolução.

Muito Obrigada! A segunda resolução ainda não me é familiar estou a basear-me na sua primeira resolução para perceber o fio condutor. Pode só dizer-me porque razão o contador começa em -1 e não em 0?
Peço desculpa pelas questões mas estou mesmo a dar os primeiros passos e sendo um curso e-learning não há muito apoio.
Muito Obrigada!

Por aqui a variável começa com o número inteiro. Por exemplo, se for digitado 379, vai ser:

1 -> (0) valor = 379 -> contador = 0
2 -> (1) valor = 37 -> contador = 1
3 -> (2) valor = 3 -> contador = 2
4 -> (3) valor = 0 -> contador = 3

Mas eu preciso desconsiderar o número inteiro (379) na contagem . Então o contador precisa começar em -1:

1 -> (0) valor = 379 -> contador = -1 // não me interessa, então não conta
2 -> (1) valor = 37 -> contador = 0
3 -> (2) valor = 3 -> contador = 1
4 -> (3) valor = 0 -> contador = 2

Por que eu quero saber quantos 10 cabe no número, para eu saber quantas dezenas tem. Nesse cálculo, o valor inicial não serve, pois não foi dividido nenhuma vez por 10. Isso poderia ser resolvido de outra forma, como por exemplo:

System.out.print("Informe o número: ");
numero = leitor.nextInt();
valor = numero;
valor /= 10;

while(valor > 0){
	valor /= 10;
	contador++;
}

Daí o contador poderia começar em 0. Fazendo essa alteração, continua funcionando, veja:

image

Ok, entendi!! não entra na contagem. Muito obrigada!!!