C++ 程式:建立無引數且無返回值的函式


程式語言中的函式用於使程式碼模組化。在許多應用程式中,我們建立子模組來使我們的程式碼易於編寫、易於除錯,並且還透過避免重複不必要的程式碼來進行最佳化。為了實現這些功能,函式就應運而生。在許多情況下,函式會接收引數並返回某些內容。有時它可能不接收任何引數但會返回某些內容。還有一些特殊情況,即函式既不接收任何引數也不返回任何內容。在本教程中,我們將介紹 C++ 中此類無引數且無返回值的函式。

無引數且無返回值型別的函式

要定義一個這樣的無引數且無返回值型別的函式,返回型別必須為 void,而引數列表可以為空,也可以在其中寫 void。語法如下所示。

語法

void function_name ( ) {
   // function body
}

語法

void function_name ( void ) {
   // function body
}

在這種情況下,我們只是列印一些內容,或執行任何類似顯示的操作,或在函式內部執行某些任務,此類情況適合使用此型別的函式。讓我們來看一個這樣的案例,並瞭解其在 C++ 中的實現。在我們的第一個示例中,我們將為固定的 10 行列印一個星形金字塔。

演算法

  • 定義函式 pyramid(),它不接收任何引數
  • 對於初始化 i := 1,當 i <= 10 時,更新(將 i 增加 1),執行 -
    • 對於初始化 j := 1,當 j <= 10 - i 時,更新(將 j 增加 1),執行。
      • 顯示空格
    • 結束迴圈
    • 對於初始化 j := 1,當 j <= i 時,更新(將 j 增加 1),執行。
      • 顯示 "* "
    • 結束迴圈
    • 轉到新行
  • 結束迴圈
  • 結束函式體
  • 呼叫 pyramid()

示例

#include <iostream> #include <sstream> using namespace std; void pyramid( ) { for( int i = 1; i <= 10; i++ ) { for( int j = 1; j <= 10 - i; j++ ) { cout << " "; } for( int j = 1; j <= i; j++ ) { cout << "* "; } cout << endl; } } int main() { pyramid(); }

輸出

         * 
        * * 
       * * * 
      * * * * 
     * * * * * 
    * * * * * * 
   * * * * * * * 
  * * * * * * * * 
 * * * * * * * * * 
* * * * * * * * * *

此程式僅列印大小為 10 的金字塔。由於大小是固定的,因此它不接收任何引數,並且由於它直接列印星號,因此不返回任何內容。讓我們再看一個類似的星形金字塔示例,該示例從使用者那裡獲取輸入,但我們也不傳遞任何引數,並且該函式不會返回任何內容。

演算法

  • 定義函式 pyramid(),它不接收任何引數
  • 從使用者處獲取 n 作為輸入
  • 對於初始化 i := 1,當 i <= n 時,更新(將 i 增加 1),執行 -
    • 對於初始化 j := 1,當 j <= n - i 時,更新(將 j 增加 1),執行
      • 顯示空格
    • 結束迴圈
    • 對於初始化 j := 1,當 j <= i 時,更新(將 j 增加 1),執行
      • 顯示 "* "
    • 結束迴圈
    • 轉到新行
  • 結束迴圈
  • 結束函式體
  • 呼叫 pyramid()

示例

#include <iostream> #include <sstream> using namespace std; void pyramid( void ) { int n; cout << "Enter line numbers: "; cin >> n; for( int i = 1; i <= n; i++ ) { for( int j = 1; j <= n - i; j++ ) { cout << " "; } for( int j = 1; j <= i; j++ ) { cout << "* "; } cout << endl; } } int main() { pyramid(); }

輸出

Enter line numbers: 18
                 * 
                * * 
               * * * 
              * * * * 
             * * * * * 
            * * * * * * 
           * * * * * * * 
          * * * * * * * * 
         * * * * * * * * * 
        * * * * * * * * * * 
       * * * * * * * * * * * 
      * * * * * * * * * * * * 
     * * * * * * * * * * * * * 
    * * * * * * * * * * * * * * 
   * * * * * * * * * * * * * * * 
  * * * * * * * * * * * * * * * * 
 * * * * * * * * * * * * * * * * * 
* * * * * * * * * * * * * * * * * *

在這裡,我們使用 cin 方法從使用者處獲取輸入。此解決方案不需要額外的引數傳遞。

結論

函式用於使程式碼模組化並易於處理。在大多數情況下,我們使用函式來接收引數並在進行某些計算後返回某些值。但這並不是一個強制性過程。在本文中,我們討論瞭如何在 C++ 中編寫一個既不接收任何引數也不返回任何內容的函式。當某些任務是預定義的時,我們可以使用這種型別的函式。例如,在我們的第一個示例中,星形金字塔只有 10 行。因此,沒有額外的輸入。在第二個示例中,我們以輸入的形式獲取行號,但不是作為輸入引數。我們直接從使用者那裡獲取輸入並將其儲存到此函式內的區域性變數中,然後在迴圈中使用它。

更新時間: 2022年10月19日

5K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告