PowerApps'teki If ve Switch işlevleriIf and Switch functions in PowerApps

Herhangi bir koşulun true olarak ayarlanıp ayarlanmadığını (If) veya bir formülün sonucunun bir kümedeki herhangi bir değerle eşleşip eşleşmediğini (Switch) belirler ve ardından bir sonuç döndürür ya da bir eylem uygular.Determines whether any condition in a set is true (If) or the result of a formula matches any value in a set (Switch) and then returns a result or executes an action.

AçıklamaDescription

If işlevi, true sonucu bulunana kadar bir veya birden çok koşulu test eder.The If function tests one or more conditions until a true result is found. Böyle bir sonuç bulunursa buna karşılık gelen bir değer döndürülür.If such a result is found, a corresponding value is returned. Böyle bir sonuç bulunmazsa, varsayılan bir değer döndürülür.If no such result is found, a default value is returned. Her iki durumda da, döndürülen değer gösterilecek bir dize, değerlendirilecek bir formül veya diğer bir sonuç biçimi olabilir.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

Switch işlevi bir formülü değerlendirir ve sonucun belirttiğiniz bir dizideki herhangi bir değerle eşleşip eşleşmediğini belirler.The Switch function evaluates a formula and determines whether the result matches any value in a sequence that you specify. Eşleşme bulunursa buna karşılık gelen bir değer döndürülür.If a match is found, a corresponding value is returned. Eşleşme bulunmazsa, varsayılan bir değer döndürülür.If no match is found, a default value is returned. Her iki durumda da, döndürülen değer gösterilecek bir dize, değerlendirilecek bir formül veya diğer bir sonuç biçimi olabilir.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

If ve Switch birbirine oldukça benzer ancak kendi durumunuza en uygun işlevi kullanmanız gerekir:If and Switch are very similar, but you should use the best function for your situation:

  • Tek bir koşulu değerlendirmek için If işlevini kullanın.Use If to evaluate a single condition. Bu işlev için en sık kullanılan söz dizimi şu şekildedir: If( Koşul, ThenSonucu, VarsayılanSonuç ). Bu, diğer programlama araçlarında sıklıkla görülen "if …The most common syntax for this function is If( Condition, ThenResult, DefaultResult ), which provides the common “if … then …then … else …"else …” desenini sağlar.pattern seen in other programming tools.
  • İlişkili olmayan birden çok koşulu değerlendirmek için If işlevini kullanın.Use If to evaluate multiple unrelated conditions. PowerApps içinde (Microsoft Excel'in aksine) If formüllerini iç içe yerleştirmenize gerek kalmadan birden çok işlev belirtebilirsiniz.In PowerApps (unlike Microsoft Excel), you can specify multiple conditions without having to nest If formulas.
  • Birden çok olası eşleşme için tek bir koşulu değerlendirmek üzere Switch işlevini kullanın.Use Switch to evaluate a single condition against multiple possible matches. Bu durumda If işlevini de kullanabilirsiniz ancak olası her eşleşme için formülü yinelemeniz gerekir.You can also use If in this case, but you'd need to repeat the formula for each possible match.

İki veya daha fazla eylem arasında dal oluşturmak için davranış formüllerinde bu işlevlerden her ikisini de kullanabilirsiniz.You can use both of these functions in behavior formulas to branch between two or more actions. Yalnızca bir dal, eylem tetikler.Only one branch will trigger an action. Koşullar sırayla değerlendirilir ve bir koşulun true olması veya bir eşleşmenin bulunması durumunda durdurulur.Conditions and matches are evaluated in order, and they stop if a condition is true or a match is found.

Hiçbir koşul true olmazsa, eşleşme bulunmazsa ve varsayılan bir sonuç belirtmezseniz Boş değer döndürülür.Blank is returned if no conditions are true, no matches are found, and you don't specify a default result.

Söz dizimiSyntax

If( Koşul, ThenSonucu [, VarsayılanSonuç ] )If( Condition, ThenResult [, DefaultResult ] )
If( Koşul1, ThenSonucu1 [, Koşul2, 2, ... [ , VarsayılanSonuç ] ] )If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Koşullar: Gerekli.Condition(s) - Required. true için test edilecek formüller.Formula(s) to test for true. Bu formüller genellikle karşılaştırma işleçleri (<, > ve = gibi) ve IsBlank ve IsEmpty gibi test işlevleri içerir.Such formulas commonly contain comparison operators (such as <, >, and =) and test functions such as IsBlank and IsEmpty.
  • ThenSonuçları: Gerekli.ThenResult(s) - Required. true sonucunu veren bir koşul için döndürülecek ilgili değer.The corresponding value to return for a condition that evaluates to true.
  • VarsayılanSonuç: İsteğe bağlı.DefaultResult - Optional. true değerini döndüren bir koşul olmaması halinde döndürülecek değer.The value to return if no condition evaluates to true. Bu bağımsız değişkeni belirtmezseniz boş değer döndürülür.If you don't specify this argument, blank is returned.

Switch( Formül, Eşleşme1, Sonuç1 [, Eşleşme2, Sonuç2, ... [, VarsayılanSonuç ] ] )Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formula - Gerekli.Formula - Required. Eşleşmeler için değerlendirilecek formül.Formula to evaluate for matches. Bu formül yalnızca bir kez değerlendirilir.This formula is evaluated only once.
  • Eşleşmeler: Gerekli.Match(s) - Required. Formül tarafından döndürülen sonuçla karşılaştırılacak değerler.Values to compare with the result from Formula. Tam bir eşleşme bulunursa buna karşılık gelen Sonuç döndürülür.If an exact match is found, the corresponding Result is returned.
  • Sonuçlar: Gerekli.Result(s) - Required. Tam bir eşleşme bulunduğunda döndürülecek, buna karşılık gelen değer.The corresponding value to return when an exact match is found.
  • VarsayılanSonuç: İsteğe bağlı.DefaultResult - Optional. Tam bir eşleşme bulunmazsa bu değer döndürülür.If an exact match isn't found, this value is returned. Bu bağımsız değişkeni belirtmezseniz boş değer döndürülür.If you don't specify this argument, blank is returned.

ÖrneklerExamples

Formüllerdeki değerlerValues in formulas

Aşağıdaki örneklerde bir Kaydırıcı denetimi (Slider1 adında) 25 değerine sahiptir.In the following examples, a Slider control (named Slider1) has a value of 25.

FormülFormula AçıklamaDescription SonuçResult
If( Slider1.Value = 25, "Result1" )If( Slider1.Value = 25, "Result1" ) Koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür.The condition is true, and the corresponding result is returned. "Result1""Result1"
If( Slider1.Value = 25, "Result1", "Result2" )If( Slider1.Value = 25, "Result1", "Result2" ) Koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür.The condition is true, and the corresponding result is returned. "Result1""Result1"
If( Slider1.Value > 1000, "Result1" )If( Slider1.Value > 1000, "Result1" ) Koşul false şeklindedir ve VarsayılanSonuç sağlanmamıştır.The condition is false, and no DefaultResult was provided. boşblank
If( Slider1.Value > 1000, "Result1", "Result2" )If( Slider1.Value > 1000, "Result1", "Result2" ) Koşul false şeklindedir, bir VarsayılanSonuç sağlanmıştır ve bu döndürülür.The condition is false, a DefaultResult was provided, and it's returned. "Result2""Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" )If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) İlk koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür.The first condition is true, and the corresponding result is returned. İkinci koşul da true'dur ancak bağımsız değişken listesinde true değerini döndüren bir koşuldan daha sonra göründüğü için değerlendirilmez.The second condition is also true, but it isn't evaluated because it appears later in the argument list than a condition that evaluates to true. "Result1""Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" )If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Kaydırıcı boş olmadığından ilk koşul false şeklindedir.The first condition is false because the slider isn't blank. Kaydırıcının değeri bir sayı olduğundan ikinci koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür.The second condition is true because the slider's value is a number, and the corresponding result is returned. "Result2""Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3")If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") Hem birinci hem de ikinci koşul false şeklindedir, bir VarsayılanSonuç sağlanmıştır ve bu döndürülür.Both the first and second conditions are false, a DefaultResult was provided, and it's returned. "Result3""Result3"
Switch( Slider1.Value, 25, "Result1" )Switch( Slider1.Value, 25, "Result1" ) Kaydırıcının değeri, kontrol edilecek ilk değerle eşleşir ve buna karşılık gelen sonuç döndürülür.The slider's value matches the first value to be checked, and the corresponding result is returned. "Result1""Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" )Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Kaydırıcının değeri, kontrol edilecek ikinci değerle eşleşir ve buna karşılık gelen sonuç döndürülür.The slider's value matches the second value to be checked, and the corresponding result is returned. "Result2""Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" )Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Kaydırıcının değeri, kontrol edilecek herhangi bir değerle eşleşmez.The slider's value doesn't match any value to be checked. Bir VarsayılanSonuç sağlanmıştır, bu nedenle bu döndürülür.A DefaultResult was provided, so it's returned. "DefaultResult""DefaultResult"

Davranış formüllerinde dal oluşturmaBranching in behavior formulas

Bu örneklerde FirstName adlı bir Metin girişi denetimi, denetimin içine yazılmış "John" değerine sahiptir.In these examples, a Text input control named FirstName has the value "John" typed into it.

FormülFormula AçıklamaDescription SonuçResult
If( ! IsBlank( FirstName.Text), Navigate( Screen1, ScreenTransition.None ) )If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Koşul true şeklindedir, bu nedenle Navigate işlevi çalıştırılır.The condition is true, so the Navigate function runs. Gerekli bir form alanının doldurulup doldurulmadığını test etmek için IsBlank işlevini kullanabilirsiniz.You can use the IsBlank function to test whether a required form field has been filled in. FirstName, boş ise bu formülün herhangi bir etkisi olmaz.If FirstName were blank, this formula would have no effect. truetrue

Görünüm Screen1 olarak değiştirilir.The display is changed to Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() )If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) !Without the ! işleci olmadan koşul false şeklindedir, bu nedenle Navigate işlevi çalıştırılmaz.operator, the condition is false, so the Navigate function doesn't run. Back işlevi VarsayılanSonuç olarak sağlanmıştır, bu nedenle çalıştırılır.The Back function was provided as a DefaultResult, so it runs. truetrue

Görünüm, daha önce gösterilen ekrana geri döner.The display goes back to the screen that was previously shown.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) )Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) FirstName.Text değeri sırasıyla "Carlos", "Kirstin" ve "John" ile karşılaştırılır.The value of FirstName.Text is compared against "Carlos", "Kirstin", and "John" in that order. "John" ile eşleşme mevcuttur, bu nedenle uygulama Screen3 görünümüne gider.A match is found with "John", so the app navigates to Screen3. truetrue

Görünüm Screen3 olarak değiştirilir.The display is changed to Screen3.

Adım adımStep by step

  1. Bir Metin girişi denetimi ekleyin ve varsayılan olarak Text1 adına sahip değilse bu şekilde adlandırın.Add a Text input control, and name it Text1 if it doesn't have that name by default.
  2. Text1 içine 30 yazın.In Text1, type 30.
  3. Bir Etiket denetimi ekleyin ve denetimin Text özelliğini şu formül olarak ayarlayın:Add a Label control, and set its Text property to this formula:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Etiket denetimi Order more! ifadesini gösterir.The Label control shows Order more! Bunun nedeni, Text1 değerinin 20'den büyük ancak 40'tan küçük olmasıdır.because the value of Text1 is more than 20 but less than 40.

  4. Text1 içine 15 yazın.In Text1, type 15.

    Etiket denetimi Order MANY more! ifadesini gösterir.The Label control shows Order MANY more! Bunun nedeni, Text1 değerinin 20'den küçük olmasıdır.because the value of Text1 is less than 20.

  5. Text1 içine 50 yazın.In Text1, type 50.

    Etiket denetimi, yazdığınız değeri gösterir. Bunun nedeni, 40'tan büyük olmasıdır.The Label control shows the value that you typed because it's more than 40.