if statement logic

Hi im looking for a way to save highscores and set them but i am running into a few problems i cant seem to find away to set them without reseting it i know the logic behind it like when the program starts it highscore 2 is always gonna be less than highscore but how can i change my code to work the way i want?

using UnityEngine;
using System.Collections;

public class Counter : MonoBehaviour {
	
	public int CurScore;
	private int HighScore;
	private int HighScore2;
	private int HighScore3;
	private int HighScore4;
	private int HighScore5;

	void Start () 
	{	
		HighScore = PlayerPrefs.GetInt("HighScore");
		HighScore2 = PlayerPrefs.GetInt ("HighScore2");
		HighScore3 = PlayerPrefs.GetInt ("HighScore3");
		HighScore4 = PlayerPrefs.GetInt ("HighScore4");
		InvokeRepeating("Points", 2, 0.3F);
	}
	
	
	// Update is called once per frame
	void Points () 
	{
		CurScore += 1;
	
	}
	void Update () {

		//if (Show.GetComponent(Respawn.ShowGUI) );
		//{


		// replace score with new highscore
		if (CurScore > HighScore)
		{
			// Set the highscore to our current score
			HighScore = CurScore;
			// savign highscore
			PlayerPrefs.SetInt("HighScore", HighScore);
		}

		
		if(CurScore < HighScore)
		{
			HighScore2 = CurScore;
			PlayerPrefs.SetInt("HighScore2", HighScore2);

		}
		
		if(CurScore < HighScore2)
		{
			HighScore3 = CurScore;
			PlayerPrefs.SetInt("HighScore3", HighScore3);

		}
		
		if(CurScore < HighScore3)
		{
			HighScore4 = CurScore;
			PlayerPrefs.SetInt("HighScore4", HighScore4);

		}
	//}
	}
	void OnGUI()
	{
		HighScore = PlayerPrefs.GetInt("HighScore");
		HighScore2 = PlayerPrefs.GetInt("HighScore2");
		HighScore3 = PlayerPrefs.GetInt("HighScore3");
		HighScore4 = PlayerPrefs.GetInt("HighScore4");
		GUI.Box(new Rect(10,10,100,30),"Score:"+CurScore.ToString());
		GUI.Box(new Rect(10,50,100,30),"HighScore:"+HighScore.ToString());
		GUI.Box(new Rect(10,90,100,30),"HighScore2:"+HighScore2.ToString());
		GUI.Box(new Rect(10,120,100,30),"HighScore3:"+HighScore3.ToString());
		GUI.Box(new Rect(10,160,100,30),"HighScore4:"+HighScore4.ToString());
		
	}
}

I would suggest you to use a list of int, initialized with the 4 highscores. Then you add the CurScore to this list and you sort it in Points function.

On OnGUI function, you loop on the 4 first values of the list (that contains 5 values), and you display them. At this point you never overwritten the highscores. I would suggest you to do that only when the game is over !

All the tests you do in the Update method are now useless with this method.