首頁>Club>
10
回覆列表
  • 1 # 西納維思生活館

      for多重迴圈的執行順序是先執行內部迴圈,再執行外部迴圈

      透過對程式碼進行等價轉換,按照上述原理即可知道程式碼的執行順序

      對於上面程式碼:

    for(i=0;i<8;i++)for(j=0;j<10;j++)scanf("%d,%d",&i,&j);

      它等價於下面

    for(i=0;i<8;i++){ for(j=0;j<10;j++){ scanf("%d,%d",&i,&j); }}

      從上面可以看出,每執行完一次j迴圈,i的值才增加1

      但是注意,該程式碼有一個陷阱:scanf函式會改變i和j的值

      實際執行順序會受使用者輸入的i、j值的不同而不同

      對於下面的程式碼

    for(i=0;i<8;) min_m(i++)=ifor(j=0;j<8;j++)

      它等價於下面的程式碼:

    for(i=0;i<8;){ min_m(i++)=i}for(j=0;j<8;j++){}

      會先執行min_m函式8次 然後再執行j迴圈

      注意,該程式碼有一個問題,就是min_m函式的返回值必須是一個左值。

      這意味著某些變數的值發生了更改,可能會影響到迴圈。

  • 中秋節和大豐收的關聯?
  • 寶寶晚上睡著後老是搖頭?