SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Tem como fazer o inimigo andar até dar de cara com o player?
Unity drag e collider
Suavizar movimento de câmera da introdução
Ajuda com Raycast position de Prefabs (Photon + unity)
[TUTORIAL] Campo de visão dos inimigos (Enemy FOV) com Raycast ou OverlapSphere
[Projeto] Jogo Ambientado no Brasil para Android
Script de tiro para o photon 2
Mudar qualidade das texturas por código?
Unity - Imagem no formato de um triângulo?
Tirar foto e exportar pro jogo
Maximizar view da cam
Trocar de cena ao matar inimigo
Como criar um botãoUI que liga e desliga uma lista de objetos?
Gráficos estilo Genshin
level system problema
Como calcular distância entre dois pontos
Posicao do objeto diferente do setado no codigo
Sistema de pulo 3D
Procuro programador Unity para jogo 2D
Pessoal saiu a versão de testes do meu novo jogo, o Sanatório Macabro
Cinemachine - trocar de camera usando uma tecla e mouse 'lockScreen'
Sistema completo de nivel com XP + PayTime
Limitar arrays e fazer sortear um valor apenas uma vez
Como faço para variável voltar para o valor inicial
Duvida com getAxis
Fazer um detetive para sair apenas 1 vez o resultado do sorteio
Jogos NTFs
Salvar variável temporária com PlayerPrefs!?
Alguém sabe fazer uma AI para o inimigo seguir o Player em um jogo Top Down
Bug com modelo ficando invisível
Erro em sistema de dialogo...
Terreno Procedural
sistema de estamina,vida,fome e sede
Posição do object diferente do código quando está em tempo real!?
FORMACAO DE EQUIPE
sistema de câmera + movimentação do player
Erro no Photon Pun 2 (InvalidCastException: Specified cast is not valid)
Procuro modelador 3D para futuro Game
A procura de um MODELADOR pra desenvolver jogo pra estudo.
Script do marcos (Como colocar um limite de Spawn)
Multiplayer
Photon 2 outros Players
QR Code + Unity + KinderOvo (Opinião)
Colisão 2d
Câmera Primeira pessoa / Movimentação
Polígonos do modelo são destorcidos ao importar na unity, como resolver?
Ativar luz e objeto sumir
duvida sobre servidor
Como converter um projeto da Unity para o PlayCanvas?
Sistema de inventario
Alguem me ajuda, minha animaçao depois de um tempo congela
COMO TROCAR FORMA DE ATAQUE DO (CLICK DO MOUSE para BOTÃO UI MOBILE)
problemas com rotacao da camera!!
Dúvida com Procedural mesh e Bezier Curves
Sols Like Projeto iniciando!
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
crowdfunding para jogos
Colisão realista?
Sobreposição de mapa de luz, gerar mapa de luz?
Script único para todos os veículos no jogo?
Como procurar um lugar vazio para spawnar monstro
Como eu posso fazer uma cutscene ilustrada com imagens?
Erro com rotacao de objeto
Veiculos Para o Unity!
Objetos de outras cenas
Como alterar a Speed da anim por código?
Verificar espaco se ocupado ou nao e limitar as instancias!!
pegar fiho de objeto instanciado!!!
alterar cor via script
[DÚVIDA] Câmera estilo FNAF
instanciar com rotacao!!
Problema com canvas/panel e objetos
ANIMAL fugir
Seguir ponto por trigger
Novo input system
Procuro programador para Sistema de Pets na Unity
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Dúvidas em geral - Como faço para colocar os gráficos estilo jogos antigos?
Movimentação PointerDown e PointerUp em peças spawn com botões UI
points linerenderer
Problemas em dividir controles em multiplayer
Jogador salvar controle
[TUTORIAL] State Machine mas simples do universo kkkk
Procuro programador para JOGO DE TERROR
Fazer pontuação aparecer momentaneamente e sumir dando erro
Alguém sabe reproduzir esse efeito do video na Unity?
Multiplayer com Unity + NOde
Clique duplo em um botão?
Como criar um objeto só quando colider com outro?
[TUTORIAL] Agachar, correr e sistema de estamina ( C# )
Objetos de outras cenas
O jogo bugou e os sliders e o joystick não estão funcionando, apenas botões
Component Cloth unity
Como reproduzir efeito "respirar" ao parar a camera
[TUTORIAL] Reconhecimento de dinheiro
Informações que ficam salvas para chamar em outras cenas (Idioma, Nick)
Limitar movimento da camera com imput android!!
Como fazer texto do Script entrar no UI
SOU MODELADOR DE MODELOS LOW POLY MEDIUM PRECISANDO E SO CHAMAR
Ontem à(s) 11:37 pm
Ter Dez 07, 2021 7:21 pm
Ter Dez 07, 2021 7:17 pm
Seg Dez 06, 2021 10:06 pm
Seg Dez 06, 2021 3:58 pm
Seg Dez 06, 2021 2:18 pm
Seg Dez 06, 2021 6:44 am
Dom Dez 05, 2021 2:27 pm
Dom Dez 05, 2021 5:11 am
Sab Dez 04, 2021 9:02 pm
Sab Dez 04, 2021 7:19 pm
Sex Dez 03, 2021 9:02 pm
Qui Dez 02, 2021 8:38 pm
Qui Dez 02, 2021 12:00 pm
Ter Nov 30, 2021 3:52 pm
Ter Nov 30, 2021 12:14 pm
Seg Nov 29, 2021 5:18 pm
Seg Nov 29, 2021 5:17 pm
Seg Nov 29, 2021 1:17 pm
Dom Nov 28, 2021 11:52 am
Dom Nov 28, 2021 1:30 am
Sab Nov 27, 2021 4:57 am
Sex Nov 26, 2021 5:53 pm
Sex Nov 26, 2021 12:16 pm
Qui Nov 25, 2021 6:15 pm
Qui Nov 25, 2021 3:31 pm
Qua Nov 24, 2021 2:01 am
Ter Nov 23, 2021 5:11 pm
Ter Nov 23, 2021 3:48 pm
Ter Nov 23, 2021 1:12 pm
Ter Nov 23, 2021 12:38 pm
Seg Nov 22, 2021 3:20 pm
Seg Nov 22, 2021 2:29 am
Dom Nov 21, 2021 12:52 pm
Dom Nov 21, 2021 11:02 am
Dom Nov 21, 2021 3:36 am
Sab Nov 20, 2021 10:35 pm
Sex Nov 19, 2021 11:54 pm
Sex Nov 19, 2021 11:51 pm
Sex Nov 19, 2021 11:08 pm
Sex Nov 19, 2021 7:08 pm
Sex Nov 19, 2021 5:23 pm
Sex Nov 19, 2021 12:57 pm
Qui Nov 18, 2021 7:12 pm
Qui Nov 18, 2021 10:37 am
Qui Nov 18, 2021 10:17 am
Seg Nov 15, 2021 11:18 pm
Seg Nov 15, 2021 11:15 pm
Seg Nov 15, 2021 10:13 am
Seg Nov 15, 2021 9:48 am
Qui Nov 11, 2021 8:49 pm
Qui Nov 11, 2021 1:31 pm
Qui Nov 11, 2021 7:31 am
Qua Nov 10, 2021 8:19 pm
Ter Nov 09, 2021 7:05 pm
Ter Nov 09, 2021 5:05 pm
Ter Nov 09, 2021 4:11 pm
Ter Nov 09, 2021 1:07 pm
Seg Nov 08, 2021 7:36 pm
Dom Nov 07, 2021 8:44 pm
Sab Nov 06, 2021 10:51 pm
Sex Nov 05, 2021 10:04 pm
Sex Nov 05, 2021 7:50 pm
Sex Nov 05, 2021 3:48 pm
Sex Nov 05, 2021 10:24 am
Sex Nov 05, 2021 2:13 am
Qui Nov 04, 2021 6:48 pm
Qui Nov 04, 2021 6:09 pm
Qui Nov 04, 2021 5:39 pm
Qui Nov 04, 2021 5:00 pm
Qui Nov 04, 2021 3:55 pm
Qui Nov 04, 2021 2:45 pm
Qui Nov 04, 2021 4:56 am
Qua Nov 03, 2021 4:04 pm
Qua Nov 03, 2021 3:54 pm
Qua Nov 03, 2021 11:48 am
Qua Nov 03, 2021 8:18 am
Ter Nov 02, 2021 6:02 pm
Ter Nov 02, 2021 5:42 pm
Ter Nov 02, 2021 10:55 am
Ter Nov 02, 2021 10:44 am
Seg Nov 01, 2021 9:40 pm
Seg Nov 01, 2021 7:32 pm
Seg Nov 01, 2021 1:01 pm
Seg Nov 01, 2021 11:21 am
Dom Out 31, 2021 2:39 pm
Sab Out 30, 2021 3:05 pm
Sab Out 30, 2021 2:43 pm
Sab Out 30, 2021 2:40 pm
Sab Out 30, 2021 11:23 am
Qui Out 28, 2021 12:04 pm
Qua Out 27, 2021 7:49 pm
Qua Out 27, 2021 7:47 pm
Qua Out 27, 2021 3:11 pm
Qua Out 27, 2021 2:51 pm
Ter Out 26, 2021 6:01 pm
Ter Out 26, 2021 5:49 pm
Seg Out 25, 2021 8:53 pm
Seg Out 25, 2021 8:17 pm
Magnatah
NKKF
NKKF
junio132sj
Mozinhas2
MRX
junio132sj
MayLeone
WLCS22
MayLeone
Joana
MayLeone
verme1311
Gabriel M
Valakinhas
Xavier
JãoArts
JãoArts
joaozinpedrin
Patrick
jeronimo Collares
M4x
EricknhYT
Charlesoff
capim22
EricknhYT
artplayer
M4x
M4x
Charlesoff
NoctisDregon
SgtMatuto
Pkneves
M4x
classicandsimple
Pkneves
EricknhYT
SeTk
SeTk
verme1311
Gamergame
claudiano2020
heyviic
joaozinpedrin
Gamergame
Crash Psycho
Zack2
Zack2
Atho
igorobm
Fzinx
igorobm
capim22
AgrrgA
hellside
Zack2
Zack2
igorobm
NoctisDregon
ProBrStalker
igorobm
brunort1
Zack2
Herovine Hl
Zack2
igorobm
capim22
Zack2
Zack2
Zack2
Zack2
joaozinpedrin
MadCow
eduardonog30
Zack2
Etoeu
junio132sj
Pedro432Joao
HugoTavares
Charlesoff
Charlesoff
Zack2
hendrick22
Cristhofer Marques
eduardonog30
AmazingDeliciano
Vorzoolvan
M4x
FelipeSouza11
Herovine Hl
joaozinpedrin
JulioWinchester
capim22
Zack2
Zack2
TIKO
capim22
EricknhYT
claudiano2020

[AULA] Estrutura de decisão if..else

Ir para baixo

TUTORIAL [AULA] Estrutura de decisão if..else

Mensagem por MayLeone Sab Set 22, 2018 5:14 pm

[AULA] Estrutura de decisão if..else Dois_caminhos

O que são estruturas de decisão?
Neste novo capítulo de nossas aulas de C# vamos falar sobre as estrutura de decisão (também conhecidas como "Condicionais") que consistem em executar determinado(s) bloco(s) de código de acordo com a expressão lógica ser cumprida.
Na aula anterior vimos que poderíamos receber algum valor na tela (true ou false) de acordo com uma expressão lógica definida numa variável booleana. Este conceito de "sim" e "não" está muito ligado com o conceito de estruturas de decisão em programação, então podemos pensar que os condicionais fazem exatamente o mesmo, porém de uma forma mais refinada.
Veja bem, até então estávamos limitados apenas a receber a mensagem "true" ou "false" da expressão lógica, mas imagine que além disso poderíamos executar um bloco de comandos diferente em nosso código além de receber apenas uma mensagem.
O que tínhamos antes era um código linear, que era lido de cima para baixo, do início ao fim, mas quando trabalhamos com estruturas de decisão passamos a ter desvios condicionais em nosso código, algo como se fosse uma bifurcação, que pode ir para um caminho ou para outro, deixando de ser totalmente linear, não sendo obrigado a passar por todos os locais do código.

Como definir uma estrutura de decisão?
Em programação temos alguns tipos de estruturas de decisão que serão definidas de formas distintas, iremos abordar o assunto sobre cada uma delas aqui no blog, mas nesta aula quero focar numa estrutura de decisão imprescindível em programação: o condicional if!
Para criar um desvio condicional em seu código, basta utilizar a palavra reservada "if" (que significa 'se') e abrir e fechar parênteses, dentro dos parênteses deve haver a expressão lógica a ser cumprida (assim como fizemos na aula anterior com as variáveis booleanas):

[AULA] Estrutura de decisão if..else Untitled%2B1
Estrutura simples:
O condicional if possui três tipos de estruturas: simples, composto e encadeado, vamos ver cada um deles nesta aula, mas gostaria de focar primeiramente na estrutura simples, e para tal, podemos usar como exemplo o mesmo exercício da aula passada sobre comprar a bebida alcoólica ou não.
Com apenas a variável booleana poderíamos apenas receber a mensagem "true" ou "false" na tela, mas agora com o if podemos obter qualquer tipo de mensagem que desejarmos, vide exemplo abaixo:

[AULA] Estrutura de decisão if..else Untitled%2B2
Note que após a definição do condicional utilizamos o Console.WriteLine para mostrar uma mensagem na tela, e veja que agora esta mensagem não se limita em apenas dizer 'true' ou 'false', agora podemos escrever o que desejarmos.
Também perceba dentro dos parênteses a expressão lógica a ser cumprida: (idade >= 18); dessa vez, não estamos armazenando esse valor numa variável booleana, estamos diretamente verificando essa expressão dentro do condicional, porém, ele ainda sim vai retornar um valor verdadeiro ou falso dentro da condição (no caso do exemplo, um valor verdadeiro) portanto o que vem após a definição da estrutura será lido pelo programa.

Caso queira fazer com que outros comandos sejam executados quando a condição for satisfeita, basta abrir e fechar chaves após a definição dos parênteses e então colocar todos os comandos entre essas chaves, ou seja, tudo o que estiver entre essas chaves fará parte da condição e só será executado se a mesma for verdadeira:

[AULA] Estrutura de decisão if..else Untitled%2B4

Veja que agora que precisamos  de mais de um comando a ser executado no condicional, foi necessário o uso das chaves {} e tudo o que há dentro delas fará parte da condição.
Execute o código acima e veja o que teremos em saída, ao colocar um valor igual ou maior que 18 para a variável idade:

[AULA] Estrutura de decisão if..else Untitled%2B5

Com isso temos agora mais possibilidades de desenvolver um programa, pois dependendo do resultado de uma expressão lógica podemos executar outro bloco de comando alternativo, como disse, como se fosse um desvio, uma bifurcação.

Mas agora tente colocar uma idade menor que 18:
[AULA] Estrutura de decisão if..else Untitled%2B6

Veja que ao dar enter o comando fecha e não executa nenhuma mensagem, isso porque, aquele bloco de comandos com as mensagens só vai ser executado se a expressão lógica dentro da condição (idade >= 18) for verdadeira, caso for falso, nada ocorrerá, e como 7 não é maior nem igual a 18, o comando vai ler o que vem após a chave de fechamento do condicional if, que é apenas um Console.ReadKey() e não fará nada.
Este tipo de condicional que possui apenas um caminho lógico, chama-se estrutura condicional simples.
Para termos outro tipo de caminho quando a condição se torna falsa devemos nos utilizar da estrutura condicional composta:

Estrutura composta:
A estrutura condicional composta é formada por duas instruções: a instrução do caminho se a expressão lógica resultar em verdadeiro e a instrução do caminho se a expressão for falsa.
A palavra reservada para definir a instrução composta é "else" e deve vir logo abaixo da instrução if:

[AULA] Estrutura de decisão if..else Untitled%2B8

Perceba que agora temos o bloco "else" que vai ser executado se a expressão lógica for falsa. Dentro dela temos a execução de duas mensagens: uma irá dizer que a pessoa não tem idade para beber e a outra vai dizer quantos anos faltam para a pessoa poder comprar a bebida.
Execute o código para testar, primeiro com um valor maior ou igual que 18:

[AULA] Estrutura de decisão if..else Untitled%2B9

Note que o bloco ''else'' não foi executado pois a condição retornou verdadeiro, agora veja o que ocorre se colocarmos um valor menor que 18:

[AULA] Estrutura de decisão if..else Untitled%2B10

Agora sim veja que o bloco 'else' é executado quando a expressão retorna um valor falso!
Então quando estamos desenvolvendo uma estrutura de decisão, você pode pensar da seguinte forma: "se tal coisa for verdadeira, execute isso, se não, execute aquilo", onde o "se" equivale ao 'if' e o "se não" equivale ao "else".

Para fixar melhor a ideia, vamos desenvolver um outro algoritmo, agora de compras, onde o usuário deve informar quanto gastou em sua compra e quanto deseja pagar, assim, o programa deve executar o código de troco (se a pessoa tiver dinheiro suficiente para pagar a compra) ou deve informar que o dinheiro é insuficiente se a pessoa não apresentar um valor válido:

[AULA] Estrutura de decisão if..else Untitled%2B11

Note que dentro da expressão "if" além de exibirmos uma mensagem, nós também realizamos uma expressão matemática para o troco, então veja que com as estruturas de decisão nós podemos tornar nosso código mais complexo, deixando apenas de executar mensagens, mas também definindo outros comandos de acordo com a condição.

Vamos testar o código, primeiro com um valor suficiente para a compra:

[AULA] Estrutura de decisão if..else Untitled%2B12

Veja que quando o valor a pagar é maior que o valor da compra, a condição é satisfeita e recebemos uma mensagem dizendo que a compra foi realizada com sucesso e ainda é mostrado o valor de nosso troco a ser recebido.
Mas veja o que ocorre se o valor a pagar é menor que o valor da compra:

[AULA] Estrutura de decisão if..else Untitled%2B13

Isso é bem lógico, não é? Se você gastar 2000 reais numa compra e apresentar apenas uma nota de 100 para pagar, o valor será insuficiente.

Estrutura encadeada:
Outro tipo de estrutura que nós temos é a estrutura condicional encadeada, que consiste em checar mais de uma condição, por exemplo: exibir uma mensagem se um valor qualquer for positivo (maior que zero) e uma mensagem diferente se o valor for negativo (menor que zero):

[AULA] Estrutura de decisão if..else Untitled%2B14

Mas e se quisermos que uma terceira mensagem aparecesse caso o valor fosse exatamente zero? Para essa situação, iríamos utilizar a estrutura encadeada, realizando um segundo else, porém um else com outra condição a ser cumprida (else if):

[AULA] Estrutura de decisão if..else Untitled%2B15

Neste momento temos três validações: se o número é maior que 0, se não o número é igual a 0, e se não for nenhuma das duas, só pode ser menor que 0.
Quando utilizamos uma (ou mais) instruções 'else if', nós estamos realizando um condicional em cadeia, com diversas opções de decisão, como você pode ver no exemplo abaixo:

[AULA] Estrutura de decisão if..else Untitled%2B16
Note que temos um algoritmo que solicita que seja digitado um valor e de acordo com esse valor digitado é exibido um dia da semana correspondente, todas essas condições intercaladas em cadeia com o else if, e caso nenhuma das opções válidas seja digitada, o 'else' final é executado informando que o valor é inválido.
Os condicionais em cadeia são muito importantes para checarmos as diversas possibilidades que podemos obter em nossas expressões, mas no caso acima, quando checamos uma a uma para um único valor, temos uma alternativa melhor que será vista na próxima aula.

Condicionais em conjunto com booleanas:
Algo também a ser considerado são as validações condicionais com booleanas.
Vamos supor que uma variável booleana chamada "vezDoJogador" defina a vez de quem vai jogar um jogo qualquer, então quando está variável é verdadeira seria a vez do jogador 1, e quando for falsa é a vez do jogador 2.
Para executar uma condição com uma booleana podemos fazer o seguinte:

[AULA] Estrutura de decisão if..else Untitled%2B17

Se você executar o programa, verá a mensagem "Vez do jogador 1" no console, isso porque iniciamos a variável "vezDoJogador" como verdadeira, e a condição para executar essa mensagem é: (vezDoJogador == true), mas saiba que você também pode obter o mesmo resultado deixando a condição apenas dessa forma:

[AULA] Estrutura de decisão if..else Untitled%2B18
Note que neste caso, não é necessário utilizar o operador (==) de comparação, pois quando estamos trabalhando com variáveis booleanas, o condicional não necessita de comparações, para obter o valor verdadeiro, basta apenas colocar o nome da variável dentro da expressão, como feito acima.
Agora teste o seguinte código:

[AULA] Estrutura de decisão if..else Untitled%2B19

Rode o debug e perceba que agora a mensagem "Vez do jogador 2" será exibida, isso porque ao utilizar o operador de negação (!) você está literalmente negando a expressão, ou seja, está dizendo que vez do jogador não é verdadeiro, em outras palavras, que vez do jogador é falso. Como é uma afirmação falsa (pois vezDeJogador é verdadeiro) executaremos o bloco de código dentro do else, ou seja, nós 'trocamos' o valor da expressão que antes era verdadeiro e passou a ser falsa.

Finalização:
E aqui chega mais um final de aula! Espero que tenham gostado do primeiro capítulo sobre condicionais, que são estruturas importantíssimas em programação, pois criam mais possibilidades em nossos códigos. Continue estudando para as próximas aulas e não deixe de fazer exercícios para fixar estes conceitos. Até a próxima!
MayLeone
MayLeone
Instrutor

Feminino PONTOS : 2617
REPUTAÇÃO : 544
Áreas de atuação : Unity & C#
Respeito as regras : [AULA] Estrutura de decisão if..else Aad8pUi

http://compilemosfacil.blogspot.com.br

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste fórum
Você não pode responder aos tópicos