Я хочу проверить, соответствуют ли 4 условия что-то должно произойти - PullRequest
0 голосов
/ 31 марта 2020

Я все еще новичок в c# Я пытаюсь написать код, который проверил бы мое условие if, если выполнено 4 условия, то что-то происходит. Вот мои коды: enter code here

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEngine.UI;
public class NameTrans : MonoBehaviour {
    public string thename;
    public GameObject inputField;
    public GameObject textDisplay;
    public GameObject textDisplay2;

    // Use this for initialization
    public void Showname () {
        thename = inputField.GetComponent<Text>().text;
     if (thename.ToUpper().Contains("Man".ToUpper()) || thename.ToUpper().Contains("Dog".ToUpper()))
        {

            textDisplay2.SetActive(false);
            textDisplay.SetActive(true);
            textDisplay.GetComponent<Text>().text = "WOrks" ;
        }
       else
        {
            textDisplay.SetActive(false);
            textDisplay2.SetActive(true);
            textDisplay2.GetComponent<Text>().text = "Not WORK" ;
        }

            }


}


Ответы [ 2 ]

1 голос
/ 31 марта 2020

Если требуется выполнить только одно из 4 условий, вы уже поступаете правильно. Вам просто нужно добавить два пропущенных условия.

if((thename.ToUpper().Contains("Man".ToUpper())) || 
   (thename.ToUpper().Contains("Dog".ToUpper())) ||
   (thename.ToUpper().Contains("Cat".ToUpper())) ||       
   (thename.ToUpper().Contains("Fish".ToUpper())))
{
    //do something
}
else
{
    //do something else
}

Если необходимо выполнить все 4 условия, вам необходимо связать условия с «&&» вместо «||».

if((thename.ToUpper().Contains("Man".ToUpper())) && 
   (thename.ToUpper().Contains("Dog".ToUpper())) &&
   (thename.ToUpper().Contains("Cat".ToUpper())) &&       
   (thename.ToUpper().Contains("Fish".ToUpper())))
{
    //do something
}
else
{
    //do something else
}

ОБНОВЛЕНИЕ с новым info Если вы хотите проверить, выполняются ли 4 условия x, я бы, вероятно, сделал что-то вроде этого:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEngine.UI;
public class NameTrans : MonoBehaviour {
    public string thename;
    public GameObject inputField;
    public GameObject textDisplay;
    public GameObject textDisplay2;
    private string[] conditions;
    private int counter;

    // Use this for initialization
    public void Showname () {
     thename = inputField.GetComponent<Text>().text;
     conditions = {"Man", "Dog", "Cat", "Fish", "Goat", 
                   "Frog", "Bird", "Alligator"};
     counter = 0;

     foreach(string cond in conditions)
     {
         if (thename.ToUpper().Contains(cond.ToUpper())
         {
             counter += 1;
             if (counter >= 4)
             {
                 break;   
             }
         }
     }

     if (counter >= 4)
        {

            textDisplay2.SetActive(false);
            textDisplay.SetActive(true);
            textDisplay.GetComponent<Text>().text = "WOrks" ;
        }
       else
        {
            textDisplay.SetActive(false);
            textDisplay2.SetActive(true);
            textDisplay2.GetComponent<Text>().text = "Not WORK" ;
        }

    }


}
0 голосов
/ 01 апреля 2020

Большое спасибо `введите код здесь Paddex для ответа. Для тех, кто использует единство Добавить новую строку []

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class NewBehaviourScript : MonoBehaviour {
    public string thename;
    public GameObject inputField;
    public GameObject textDisplay;
    public GameObject textDisplay2;
    private string[] conditions;
    private int counter;
    // Use this for initialization

    public void Showname()
    {
        thename = inputField.GetComponent<Text>().text;
        conditions = new string[] {
            "Man", "Dog", "Cat", "Fish", "Goat", 
                   "Frog", "Bird", "Alligator"};
        counter = 0;
        foreach (string cond in conditions)
        {
            if (thename.ToUpper().Contains(cond.ToUpper()))
            {
                counter += 1;
                if (counter >= 4)
                {
                    break;
                }
            }
        }

        if (counter >= 4)
        {

            textDisplay2.SetActive(false);
            textDisplay.SetActive(true);
            textDisplay.GetComponent<Text>().text = "WOrks";
        }
        else
        {
            textDisplay.SetActive(false);
            textDisplay2.SetActive(true);
            textDisplay2.GetComponent<Text>().text = "Not WORK";
        }

    }


}






Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...