Babysitting a server reboot
As you have read it is usually preferred to exit a loop via its condition(s) as supposed to force exiting via commands like break, exit and continue. Those commands do have their place but your loop and logic could do without them. You are only executing the code inside the if once. Why bother keeping it inside the loop? Lets update the while condition and move the if clause outside. 

$maximumAttempts = 60
$attemptIndex = 0

do {
    # Wait between checks. 
    $attemptIndex++
    Start-Sleep -Seconds 10
} While (Test-path "\\$server\c$" -and $attemptIndex -le $maximumAttempts)

# Check if the loop ran for its maximumAttempts
if($attemptIndex -ge $maximumAttempts){

  [PsCustomObject]@{
      "Server" =  $server
      "Status" = "FailedToReboot!"
      "LastRebootTime" = "$LastReboot"
      "CurrentRebootTime" = "FailedToReboot!"
   }

   Send-MailMessage &lt;Details&gt;
}


You will also see that I have used more meaningful variable names. I have also used standardized indentation. Doing that removes the need for comments like }#while loop. The indentation makes it clear where the brackets start and stop and make reading the code easier.