使用goto vs while(wrongchoice)和一个开关。

时间:2016-12-08 11:19:34

标签: goto

我想知道在这种情况下你是否有理由不使用goto vs使用while(变量):

<html>
    <head>
        <title>Script</title>
        <script>
            var navigating = false;
            window.onbeforeunload = function (e) {

                if(!navigating){
                    return null;
                }
                navigating = false;
                var e = e || window.event;

                  // For IE and Firefox
                  if (e) {
                    e.returnValue = 'àààà Are you sure you want to leave?';
                  }

                  // For Safari               
                return ' àààà Are you sure you want to leave?';
            };
            function navigate(url){
                navigating = true;
                setTimeout(function(){ window.location = url; }, 0);
            }
            window.onload = function(){
                var as = document.getElementsByTagName("a");
                var navigateToUrl = function(e){
                    var element = e.target;
                    var url = element.getAttribute("data-href");
                    navigate(url);
                };
                for(var i = 0; i < as.length; i++){
                    as[i].onclick= navigateToUrl;
                }
            }
        </script>
    </head>
    <body>
        hello
        <a href="#" data-href="http://google.com">Google</a>
    </body>
</html>

vs

:start
result=askUser("do you want 1,2,or 3?")
switch(result){
   case 1: display("you chose 1")
   case 2: display("you chose 2")
   case 3: display("you chose 3")
   default: display("choice not availaible")
            goto :start 
}

在我看来goto在小μc上会更好,因为你不必设置一个变量并为它使用内存(当你只有256,有点有点)

对于今天的计算机而言,贪婪的几位是徒劳的,那么使用的时间要清楚得多吗?

1 个答案:

答案 0 :(得分:1)

  对于今天的计算机而言,贪婪的几位是徒劳的,那么使用的时间会更清晰吗?

完全。可读性和在绝大多数情况下,可维护性比性能更重要。

我遇到的情况是goto比while循环更快,即使使用-O3优化,但这是在分子动力学模拟器的O(n ^ 2)算法的最内层循环中。除非使用强烈的用例(需要在代码的生命周期内进行更密集的维护!),请使用while,因为它更具可读性,并且不太可能做出奇怪的事情。