<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 8.范圍 有時,例如在評分系統中,我們需要具有一定范圍的值。 如果學生的分數從 60 到 100,則他的成績為 A,從 50 到 59 的成績為 B,依此類推。 每當我們需要處理一系列值時,我們都可以在 Ruby 中使用范圍。 在終端中輸入`irb --simple-prompt`并將其輸入 ```rb >> (1..5).each {|a| print "#{a}, " } ``` 輸出量 ```rb 1, 2, 3, 4, 5, => 1..5 ``` 好,上面的語句中的`(1..5)`是什么,這稱為范圍。 范圍是一個具有上限值和下限值以及介于兩者之間的所有值的對象。 請注意,像數組一樣,可以使用`each`方法得出范圍內的每個值,如上所示。 范圍不僅僅適用于數字,還可以適用于字符串,如下所示 ```rb >> ("bad".."bag").each {|a| print "#{a}, " } ``` Output ```rb bad, bae, baf, bag, => "bad".."bag" ``` 讓我們嘗試一下 irb 中的其他一些例子,這些例子會告訴我們更多有關 Ranges 的信息。 因此,啟動你的 irb 并輸入以下內容 ```rb >> a = -4..10 ``` Output ```rb => -4..10 ``` 在上面的代碼片段中,我們創建了一個范圍為值-4 到 10 的范圍。要檢查`a`屬于哪種類型,請找出它是什么類 ```rb >> a.class ``` Output ```rb => Range ``` 我們可以看到一個屬于`Range`類 要獲得某個范圍內的最大值,請使用`max`方法,如下所示 ```rb >> a.max ``` Output ```rb => 10 ``` 要獲得范圍內的最小值,請使用`min`方法,如下所示 ```rb >> a.min ``` Output ```rb => -4 ``` 可以使用`to_a`方法將范圍轉換為數組,如下所示 ```rb >> a.to_a ``` Output ```rb => [-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` ### 8.1。 范圍,以防.. when 查看下面的程序( [range_case_when.rb](code/ranges_case_when.rb) ),我們正在構建一個學生評分系統,其中當輸入一個分數時,該程序將計算學生的成績,研究代碼,鍵入并執行它 ,我們很快就會看到它是如何工作的。 ```rb #!/usr/bin/ruby # ranges_case_when_19.rb puts "Student grading system" print "Enter student mark: " mark = gets.chop.to_i grade = case mark when 80..100 'A' when 60..79 'B' when 40..59 'C' when 0..39 'D' else "Unable to determine grade. Try again." end puts "Your grade is #{grade}" ``` Output ```rb Enter student mark: 72 Your grade is B ``` 首先,程序打印出該軟件是學生評分系統,并要求用戶輸入學生評分。 當使用`gets`語句輸入標記時,使用`chop`方法將尾隨換行符截斷,并使用`to_i`方法將其轉換為整數,并將標記存儲在變量標記中。 所有這些都使用此`mark = gets.chop.to_i`語句完成。 有了標記后,我們需要將其與一系列值進行比較以確定使用以下語句完成的等級: ```rb grade = case mark when 80..100 : 'A' when 60..79 : 'B' when 40..59 : 'C' when 0..39 : 'D' else "Unable to determine grade. Try again." end ``` 在這里,我們看到標記被傳遞到 case 語句。 在`when`中,沒有用于比較`mark`的數字或字符串,實際上我們有范圍。 當分數從 80 到 100(含兩端)時,等級設置為`A`,當分數在 60 至 79 時,等級設置為`B`,對于`C`設置為 40 至 59,對于`D`設置為 0 至 39。 。如果用戶輸入錯誤,則等級將設置為`"Unable to determine grade. Try again."`。 因此,正如我們看到的那樣,將范圍與`case when`語句一起使用時非常方便。 與其他語言相比,它使編程相對簡單。 ### 8.2。 檢查間隔 Ranges 的另一種用途是檢查是否有任何東西位于特定的時間間隔內。 考慮下面的程序( [range_cap_or_small.rb](code/ranges_cap_or_small.rb) ) ```rb #!/usr/bin/ruby # ranges_cap_or_small.rb print "Enter any letter: " letter = gets.chop puts "You have entered a lower case letter" if ('a'..'z') === letter puts "You have entered a upper case letter" if ('A'..'Z') === letter ``` Output ```rb Enter any letter: R You have entered a upper case letter ``` 仔細閱讀并執行。 在上述情況下,我輸入了大寫字母`R`,因此程序顯示我輸入了大寫字母。 如果我輸入了小寫字母,程序會說我輸入了小寫字母。 讓我們看看程序如何工作。 以下幾行: ```rb print "Enter any letter: " letter = gets.chop ``` 提示用戶輸入字母,當用戶輸入字母時,`gets`方法得到它,`chop`截斷由于我們按下 Enter 鍵而添加的新行字符。 在下一行中查看`if ('a'..'z') === letter`,在這里我們檢查變量字母中的值是否位于`'a'`和`'z'`(包括兩者)中,如果包含,則打印用戶輸入的小寫字母。 請注意,如果 letter 中包含大寫字母,并且程序打印用戶輸入了大寫字母,則我們不使用等于`== `but we use triple equal to `===`&lt;sup class="footnote"&gt;[[27](#_footnotedef_27 "View footnote.")]&lt;/sup&gt; to check if its in range. In a similar way `('A'..'Z') ===`的 double 字母返回 true。 ### 8.3。 使用三點... 我想添加的范圍中的另一件事是使用三點而不是使用雙點。 只需在 irb 上嘗試這些即可。 ```rb >> (1..5).to_a => [1, 2, 3, 4, 5] >> (1...5).to_a => [1, 2, 3, 4] ``` 從上面的代碼片段中可以看到,當我鍵入`(1..5).to_a`時,我們得到的數組輸出為`[1, 2, 3, 4, 5]`,但是對于`(1…?5).to_a`,我們得到的輸出為`[1, 2, 3, 4]`。 三點忽略范圍內的最后一個值。 ### 8.4。 無盡的范圍 Ruby 有無限的范圍,也就是說你可以編寫這樣的程序 ```rb #!/usr/bin/ruby # ranges_cap_or_small.rb print "Enter any letter: " letter = gets.chop puts "You have entered a lower case letter" if ('a'..'z') === letter puts "You have entered a upper case letter" if ('A'..'Z') === letter ``` 運行程序會產生以下輸出 ```rb Enter your age: 32 You are grownup ``` 在上面的執行中,我將年齡定為 32 歲,因此涉及代碼的這一部分 ```rb when (19..) puts "You are grownup" ``` 在其中查看`(19..)`,這里表示 19 及其上方的任何值。 請注意,我們未指定`when 19..`,因為這會混淆 Ruby 解釋器并拋出錯誤。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看