Quando usar a condição “Se”

Home Fóruns Programação Básica Quando usar a condição “Se”

Visualizando 3 respostas da discussão
  • Autor
    Posts
    • #68774

      Olá, boa tarde.
      Tenho dúvidas sobre como utilizar a condição “Se” no Portugol Studio.
      Vejo nas vídeo aulas aparecendo, “Se”, “Senao”, “Senao se”. E não tenho certeza qual utilizar, se é melhor dois “Se” ou um “se” e um “Senao” por exemplo.
      Outra dúvida relacionado a isso é com qual tipo de “Se” terminar a condição, as vezes vejo o professor finalizar com “Senao” outras vezes com um “Se” básico, confesso que estou com dificuldades para entender essa parte.

      Att

    • #68793
      IcaroFilho
      Moderador

      Boa noite Pedro.
      tentarei de resumir de forma bem simples.
      vc utilizará o “se”, sempre determinada situação tiver mais de uma opção.
      ex.: Supondo que passa com um veiculo por um radar:

      programa {
      	funcao inicio() {
      		inteiro vel = 60
      		se (vel > 70){
      		    escreva("Velcidade superior a 70 km/h") // bloco 1
      		} senao {
      		    escreva("Velocidade inferior a 70 km/h") // bloco 2
      		}
      	}
      }

      Ou seja, se o veiculo estiver acima de 70, executará o bloco 1 e não executará o resto de se.
      Neste exemplo, o valor de vel é inferior a 70, logo ele faz o teste no se, como a condição é falsa ele executa automaticamente o senao

      Se nos criássemos vários ” SE “. todas as condições verdadeiras seriam atendidas.
      por exemplo.: Suponha que queiramos que o programa nos informe que o veiculo esta abaixo de determinada velocidade. se utilizarmos apenas o se:

      inteiro vel = 30
      se (vel < 10){
          escreva("Velocidade menor que 10\n")
      }
      se (vel < 20){
          escreva("Velocidade menor que 20\n")
      }
      se (vel < 40){
          escreva("Velocidade menor que 40\n")
      }
      se (vel < 50){
          escreva("Velocidade menor que 50\n")
      }

      isso nos daria uma saida:

      Velocidade menor que 40
      Velocidade menor que 50

      sabendo que 40 é menor que 50, fica desnecessário continuar os testes lógicos. Sempre que utilizarmos múltiplas opções, usaremos senao se:

      		inteiro vel = 30
      		se (vel < 10){
      		    escreva("Velocidade menor que 10\n")
      		}
      		senao se (vel < 20){
      		    escreva("Velocidade menor que 20\n")
      		}
      		senao se (vel < 40){
      		    escreva("Velocidade menor que 40\n")
      		}
      		senao se (vel < 50){
      		    escreva("Velocidade menor que 50\n")
      		}

      output:
      Velocidade menor que 40
      Com isso, quando o teste logico for verdadeiro, irá encerrar.

    • #68843
      Tutora Mayla
      Mestre

      Pedro, a resposta do Icaro está maravilhosa, mas vou complementar de um outro jeito pra ver se te ajuda também.

      Para saber quando usar qual tipo de condição é necessário analisar o problema.

      • Se há uma situação onde só é necessário saber se uma variável tem ou não um valor, o caso mais simples, podemos usar aqui o se apenas. se(num == 1)
      • Se há um caso onde além de precisar saber se uma variável tem um valor, nos precisamos tratar também o caso onde ela tem todos os valores que não são o desejado. Note aqui que o senao irá englobar todos os valores de idade menores que 18, ou seja, tudo que não pertencer ao bloco se. Podemos fazer algo como:
        se(idade >= 18) {...
         }senao {...}
      • Se temos um caso, onde além de precisar saber se uma variável tem ou não um determinado valor, precisamos saber se ela tem outro determinado valor, podemos usar o senao se. Como uma variável não pode conter ambos valores ao mesmo tempo, o que estamos dizendo em forma de código aqui é “se a variável não for uma maça então ela pode ser uma banana” mas nunca ela vai ser maça e banana ao mesmo tempo.
        se(fruta == "maça") {...
        }senao se("fruta == "banana") {...}
        

        se aqui quisermos englobar ainda os casos onde a variável é qualquer fruta que não seja maça ou banana podemos adicionar o senaono final.

        se(fruta == "maça") {...
        }senao se("fruta == "banana") {...
        }senao {...} //aqui é tudo que <strong>não </strong>é maça ou banana
        

        O senao se ajuda a não fazer testes desnecessários, imagine que já foi descoberto que a fruta é uma maça, pra que eu irei testar se ela é também uma banana? Com o senao se, ele só ira fazer o teste se é uma banana se souber que não é uma maça. E só irá para o bloco senao se souber que não é nem maça e nem banana.

      • É possível utilizar uma sequencia como a abaixo :
        se(num == 10){...
        }se(num == 20){...
        }se(num == 30){...}

        Mas como eu expliquei anteriormente não é possível que a variável tenha 2 valores ao mesmo tempo, então nessa situação provavelmente é melhor utilizar o senao ne.

      A condição pode ser finalizada com qualquer um dos 3 tipos, se for apenas um teste básico pode terminar apenas com o se, se for um teste onde se quer englobar todos os casos restantes termina-se com o senao e se for um teste onde eu quero realiza-lo apenas se os teste anteriores derem falsos, pode-se terminar com o senao se.
      Note que só é possível começar com o se(e pode aparecer também no meio e no final), enquanto o senao se pode ser utilizado no meio e no final e o senao só pode ser utilizado no final.
      O código abaixo é um exemplo de código ERRADO pois todo senao se e todo senao tem que estar associado a um se escrito imediatamente anteriormente:
      Senao se(nome == "Mayla").

      Não mencionei aqui se aninhados, se houver dúvida sobre como utilizar blocos condicionais aninhados basta deixar sua dúvida aqui que lhe ajudaremos também.

      Espero ter ajudado, quaisquer dúvidas estamos a disposição. Bons estudos!

    • #68931

      Icaro e Mayla, obrigado pelas respostas.
      Agora consegui entender perfeitamente as condições, me ajudaram bastante.

Visualizando 3 respostas da discussão
  • Você deve fazer login para responder a este tópico.