Haskell程式:從使用者讀取整數
本教程將幫助我們從使用者那裡讀取一個整數。系統將提示使用者輸入任何整數。然後,輸入的整數將顯示在控制檯上。
方法一:使用read和getLine函式
此方法使用read和getLine函式嘗試將輸入解析為整數,並將整數顯示在控制檯上。
演算法
步驟1 − main :: IO () 定義主函式。
步驟2 − putStrLn "Enter an integer: " 列印提示使用者輸入的訊息。
步驟3 − input <- getLine 使用者輸入儲存在變數input中。
步驟4 − let number = read input :: Int 將輸入讀取為整數並將其儲存在變數number中。
步驟5 − putStrLn ("You entered: " ++ show number) 最終列印使用者輸入的內容。
示例
使用read和getLine函式從使用者讀取整數的程式。
main :: IO () main = do putStrLn "Enter an integer: " input <- getLine let number = read input :: Int putStrLn ("You entered: " ++ show number)
輸出
Enter an integer: -20 You entered: -20
方法二:使用readLn函式
此方法使用readLn函式嘗試將輸入解析為整數,並將整數顯示在控制檯上。
演算法
步驟1 − main :: IO () 定義主函式。
步驟2 − putStrLn "Enter an integer: " 列印提示使用者輸入的訊息。
步驟3 − number <- readLn :: IO Int 使用者輸入被讀取為整數並存儲在變數number中。
步驟4 − putStrLn ("You entered: " ++ show number) 最終列印使用者輸入的內容。
示例
使用readLn函式從使用者讀取整數的程式。
main :: IO () main = do putStrLn "Enter an integer: " number <- readLn :: IO Int putStrLn ("You entered: " ++ show number)
輸出
Enter an integer: -3 You entered: -3
方法三:使用readMaybe函式
此方法使用readMaybe函式嘗試將輸入解析為整數,如果成功則返回Just number,否則返回Nothing。
演算法
步驟1 − import Text.Read (readMaybe) 從Text.Read模組匯入readMaybe函式。
步驟2 − main :: IO () 定義帶有IO單子的主函式。
步驟3 − putStrLn "Enter an integer: " 列印提示使用者輸入的訊息。
步驟4 − input <- getLine 讀取使用者輸入並將其儲存在input變數中。
步驟5 − readMaybe input :: Maybe Int 使用readMaybe函式嘗試將輸入解析為整數,如果成功則返回Just number,否則返回Nothing。 :: Maybe Int指定輸入的型別為Maybe Int。
步驟6 − Just number -> putStrLn ("You entered: " ++ show number) 如果輸入是有效的整數,則列印使用者輸入的內容。
步驟7 − Nothing -> putStrLn "Invalid input. Please enter a valid integer." 如果輸入不是有效的整數,則向用戶列印錯誤訊息,提示他們輸入有效的整數。
示例
使用readMaybe函式從使用者讀取整數的程式。
import Text.Read (readMaybe) main :: IO () main = do putStrLn "Enter an integer: " input <- getLine case readMaybe input :: Maybe Int of Just number -> putStrLn ("You entered: " ++ show number) Nothing -> putStrLn "Invalid input. Please enter a valid integer."
輸出
Enter an integer: -7 You entered: -7
方法四:使用prompt函式
此方法使用prompt函式嘗試將輸入解析為整數並將數字返回到控制檯。
演算法
步驟1 − prompt s = do 和 putStrLn s 用於提示使用者輸入。
步驟2 − number <- getLine 讀取使用者輸入並將其儲存在input變數中。
步驟3 − return number 將數字返回到控制檯。
步驟4 − main = do 呼叫主函式。
步驟5 − number <- prompt "Enter a integer number" 透過呼叫prompt函式列印提示使用者輸入的訊息。
步驟6 − putStrLn ("Entered number: ") 和 print $ (read number :: Int) 用於列印使用者輸入的內容。
示例
使用prompt函式從使用者讀取整數的程式。
prompt s = do putStrLn s number <- getLine return number main = do number <- prompt "Enter a integer number" putStrLn ("Entered number: ") print $ (read number :: Int)
輸出
Enter a integer number -6 Entered number: -6
結論
在Haskell中,有多種方法可以從使用者讀取整數。這可以透過使用read函式、getLine函式、readLn函式、readMaybe函式或prompt函式來實現。在每種方法中,都提示使用者輸入任何整數。然後,輸入的整數將顯示在控制檯中作為輸出。