Relay problems

I'm rather rusty at programming and right now I need help!

I have have a membrane panel with 5 switches and need to operate 6 relays as follows

switch 0(on) - relay 0(on), relay 4(on)
switch 0(off) - relay 0(off), delay(), relay 4(off), relay 5(on), delay, relay 5(off)

switch 1 and 2 similar function to switch 0

switch 3(on) - relay 3(on)
switch 3(off) - relay 3(off)

switch 4(on) - relay 4(on)
switch 4(off) - relay 4(off), relay 5(on), delay, relay 5(off)

My code works fine when set up for a single switch but when I try to implement muti switchs I get erratic results.

I'm using a genuine Arduino Uno and would welcome any help/criticism.

#include <Wire.h>  // Comes with Arduino IDE
//#include <LiquidCrystal_I2C.h>

#define col 2
#define range 3
#define lim 4
#define sti 5
#define sod 6
#define exhaust 7

#define On 0
#define Off 1

int switchPin[] = {8, 9, 10, 11, 12}; //switch pins
int relayPin[] = {2, 3, 4, 5, 6, 7}; //relay pins
//int valve[] = {1, 1, 1, 1, 1,}; // valve on
int ledPin = 13;
int VALVE = 1;

void setup() {
  Serial.begin(9600);

#define SCOL 8
#define SRANGE 9
#define SLIM 10
#define SSTI 11
#define SSOD 12




  digitalWrite(col, HIGH);// Set relay
  digitalWrite(range, HIGH);
  digitalWrite(lim, HIGH);
  digitalWrite(sti, HIGH);
  digitalWrite(sod, HIGH);
  digitalWrite(exhaust, HIGH);


  pinMode(SCOL, INPUT_PULLUP); //Set switch
  pinMode(SRANGE, INPUT_PULLUP);
  pinMode(SLIM, INPUT_PULLUP);
  pinMode(SSTI, INPUT_PULLUP);
  pinMode(SSOD, INPUT);

  pinMode(col, OUTPUT);
  pinMode(range, OUTPUT);
  pinMode(lim, OUTPUT);
  pinMode(sti, OUTPUT);
  pinMode(sod, OUTPUT);
  pinMode(exhaust, OUTPUT);

}

void loop()
{
  //int j = 0;
  for (int i = 0; i < 5; i++)
  {
    if (digitalRead(switchPin[i]) == LOW)
    {
      switch (switchPin[i])
      {
        case 8:
          relay(0);
          break;
        case 9:
          relay(1);
          break;
        case 10:
          relay(2);
          break;
        case 11:
          relay(3);
          break;
        case 12:
          relay(4);
          break;
      }
    }
    else
    {
      switch (switchPin[i])
      { case 8:
          relayOff(0);
          break;
        case 9:
          relayOff(1);
          break;
        case 10:
          relayOff(2);
          break;
        case 11:
          relayOff(3);
          break;
        case 12:
          relayOff(4);
          break;
      }
    }
  }
}


void relay(int j)
{
  //if (digitalRead(switchPin[j]) == LOW)

  {
    digitalWrite(relayPin[j], On);
    digitalWrite(sod, On);
    digitalWrite(exhaust, Off);
    VALVE = 0;
    delay(100);
  }
}
// else

void relayOff(int j)
{
  digitalWrite(relayPin[j], Off);
  delay(1500);
  digitalWrite(sod, Off);
  if (VALVE == 0)
  {
    digitalWrite(exhaust, On);
    delay(1000);
    digitalWrite(exhaust, Off);
    VALVE = 1;
  }
}

Just to give you a little insight:

What will happen to Relay 4 when: Switch 0 is OFF --AND-- Switch 4 is ON?

Thanks for your interest.

The process is as follows:

Two base liquids, liquid1 is on relay 3 and liquid2 on relay 4

Liquid2 is always neat, whereas liquid1 may be neat, but can have one of three additives,
Hence relays 0, 1 and 2

Relay5 is for purging the line.

Ultimately The code needs to ensure that each button calls the correct sequence and prevents any other simultaneous button call.