簡體   English   中英

有什么辦法可以縮短這個時間嗎

[英]IS there any way i can make this shorter

通過閱讀初學者的書並在線查找書中的內容,我正在學習如何在業余時間使用不整潔,有一個練習要求我

創建一個腳本,將數字從1到10輸出到控制台,但不輸出3和5的倍數,而是輸出短語“ programming is awesome”

雖然我通過使用此代碼實現了此任務

using UnityEngine;
using System.Collections;

public class Loops : MonoBehaviour {

// Use this for initialization
void Start () {

    for(int i = 1; i <= 10; i++)
    {
        if(i == 3 )
            print ("Programming is Awesome!");
        else if (i == 5)
            print ("Programming is Awesome!");
        else if (i == 6)
            print ("Programming is Awesome!");
        else if (i == 9)
            print ("Programming is Awesome!");
        else if (i == 10)
            print ("Programming is Awesome!");
        else
            print (i);
    }
}


}   

我想知道是否只有通過使用較少的代碼行就能達到相同的結果

您要使用模數(aka模)運算符(%)來完成此任務。 它返回除法的余數,因此,當模運算的結果為0時,您就知道除數是倍數。

for (int i = 1; i <= 10; i++)
{
    if(i % 3 == 0 || i % 5 == 0)
        print("programming is awesome");
    else
        print(i);
}

本練習的重點是您應該計算倍數,而不僅僅是為您知道是倍數的每個值都設定一個條件。

使用模運算符檢查它是否為另一個的偶數倍。 這顯示了模運算符對於某些值返回的內容:

 i    i % 3
------------
 1      1
 2      2
 3      0
 4      1
 5      2
 6      0
 7      1

如您所見,當i為3的倍數時, i % 3值為0 您可以使用它來檢查數字是否為三的倍數:

if (i % 3 == 0) {
  print ("Programming is Awesome!");
}

現在,您應該也可以對五個執行相同的操作,並將其合並到您的代碼中。

  for (int i = 1; i <= 10; i++)
        {
            print((i % 3 == 0 || i % 5 == 0)? "programming is awesome" : i));
        }

也可以使用三元運算符進行檢出。

這樣做的方式

if(i == 3 || i == 5 || i == 6 || i == 9 || i == 10){
    print ("Programming is Awesome!");
}
else {
    print (i);
}

使用取模運算符的更好方法

if( i % 3 == 0 || i % 5 == 0){
    print ("Programming is Awesome!");
}
else {
    print (i);
}

使用也可以嘗試

print((i % 3 == 0 || i % 5 == 0)? "Programming is Awesome!" : i));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM