Alguem me ajuda a descobrir o menor valor desse daqui?

Eu ia fazer com ifs mas ouvi falar que da pra fazer com arrays , só que não sei como…

package a;

import java.util.Scanner;

public class Calculations {

public static void main(String[] args) {
	
		
		int FlourAmount ;
		int FlourMin = 1000; //grams
		int EggsAmount ;
		int EggsMin = 1 ; 
		int MilkAmount ;
		int MilkMin = 500; //miligrams
		int ButterAmount ;
		int ButterMin = 300; //grams
		String Yes = null;
		String UserName = null;
		String Manteiga = null;
		
		boolean DeuCerto;
		//constructor
		
		System.out.println("Olá !" + System.lineSeparator() + "Iniciando CakeMaker2000..");
		Scanner UserImput;
		
		
		//O BAGUIO TA DOIDO
		System.out.println("Tudo Pronto !");
		while (!"S".equalsIgnoreCase(Yes)) {
		System.out.println("Qual é seu nome?");
		UserImput = new Scanner(System.in);
		UserName = UserImput.nextLine();
		System.out.println("O seu nome é " + UserName + " ?");
		UserImput = new Scanner(System.in);
		Yes = UserImput.nextLine();
		
		}
		System.out.println("Quantos gramas de farinha você tem ?");
		UserImput = new Scanner(System.in);
		FlourAmount = UserImput.nextInt();
		
		System.out.println("Quantos ovos você tem ?");
		UserImput = new Scanner(System.in);
		EggsAmount = UserImput.nextInt();
		
		System.out.println("Quantos mililitros de leite você tem ?");
		UserImput = new Scanner(System.in);
		MilkAmount = UserImput.nextInt();
		
		
		DeuCerto = true;
		while(DeuCerto == true) {
			System.out.println("Você vai usar manteiga ou margarina ?");
			UserImput = new Scanner(System.in);
			Manteiga = UserImput.nextLine();
			
			if (Manteiga.equalsIgnoreCase("Manteiga") ||Manteiga.equalsIgnoreCase("Margarina")) {
			DeuCerto = false;
			
		}else {
			System.out.println("Não Entendi ..");
			
			
		}
		
			System.out.println("Quantos gramas de " + Manteiga +"você tem ?");
			UserImput = new Scanner(System.in);
			ButterAmount = UserImput.nextInt();
			
			//Main code here
			
			if(FlourAmount < FlourMin || EggsAmount < EggsMin || MilkAmount < MilkMin || ButterAmount < ButterMin) {
			System.out.println("Você não tem os ingredientes para fazer um bolo.. ");
			boolean True = true; 
			while(True == true) 
			{
				System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAA");
				
			}
			}else {
				FlourAmount = FlourAmount/FlourMin;
				System.out.println("Você tem " + FlourAmount + " gramas de farinha");
				EggsAmount = EggsAmount/EggsMin;
				System.out.println("Você tem " + EggsAmount + " ovos");
				MilkAmount = MilkAmount/MilkMin;
				System.out.println("Você tem " + MilkAmount + " gramas de farinha");
				ButterAmount = ButterAmount/ButterMin;
				System.out.println("Você tem " + ButterAmount + " gramas de " + Manteiga);
				//find smallest number of em
				
				
				
			}
			
			
		
		}
		
		
		
		
		
		}
}

Porque você está instanciando tantos Scanner?
O Sysyem.in é 1 só, então você só precisa de 1 Scanner, embora eu não recomende usar Scanner, já que você está usando os métodos nextInt, que não consome a quebra de linha…

Quais outros existem alem do scanner?

Eu gosto do BufferedReader, você pode utilizar o Scanner para ler entrada do teclado, mas aí lembre-se de utilizar somente o método nextLine(), pra não deixar quebrar de linha penduradas no buffer de memória.