Usuário com melhor resposta
Dúvida!

Pergunta
-
Eu estou a tentar fazer um programa em que ao escrever um nome na consola um dos quatro nomes apresentados no código, a mesma escreverá 4 características acerca do nome. Infelizmente, só funciona quando escrevo o nome Ricardo mesmo quando não o ponho em primeiro lugar.
Gostava que me apresentassem alternativas para que o código funcione!
Obrigado :)
O código -
"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Familia
{
class Program
{
static void Main(string[] args)
{
string nome, emprego, nacionalidade;
byte idade;
Console.Write("Name:");
if (Console.ReadLine() == "Ricardo")
{
nome = "Ricardo";
idade = 44;
emprego = "Professor de educação física";
nacionalidade = "Português";
}
if (Console.ReadLine() == "Isabel")
{
nome = "Isabel";
idade = 44;
emprego = "Professora de educação especial";
nacionalidade = "Portuguesa";
}
if (Console.ReadLine() == "Diogo")
{
nome = "Diogo";
idade = 14;
emprego = "Estudante";
nacionalidade = "Português";
}
if (Console.ReadLine() == "Filipa")
{
nome = "Filipa";
idade = 18;
emprego = "Estudante";
nacionalidade = "Portuguesa";
}
else
{
Console.Write("Nome inválido");
}
Console.Write("Nome: " + nome + "; Idade: " + idade + "; Emprego: " + emprego + "; Nacionalidade: " + nacionalidade);
Console.Read();
}
}
}"
- Editado RyuzakiPT terça-feira, 5 de dezembro de 2017 20:05
Respostas
-
Nao coloque a leitura aqui:
string nome, emprego, nacionalidade, leitura = Console.ReadLine(); ;
Voce pode fazer assim:
string nome, emprego, nacionalidade, leitura;
e depois:
Console.Write("Name:"); leitura=Console.ReadLine() ;
Console.ReadLine é um comando de leitura. Ele interrompe o fluxo do programa e espera que voce digite algo e pressione a tecla Enter. Se voce coloca no topo, o programa para la e nao depois da mensagem
Name:
Por isso voce pode nao estar entrando a informaçao no momento correto.
Att
William John Adam Trindade
Analyste-programmeur
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Editado William John Adam TrindadeModerator terça-feira, 5 de dezembro de 2017 21:26
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 11 de dezembro de 2017 12:34
-
Estranho mesmo.
Não tem como o código do William estar errado. É um código simples, e que não tem como ter outra interpretação. Creio que tem algum erro seu na hora da cópia.
Copie de novo e tente. Tenho certeza que dará certo.
Antero Marques
_____________________________________________________________________________
Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.- Editado Antero Marques quarta-feira, 6 de dezembro de 2017 02:16
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 11 de dezembro de 2017 12:34
Todas as Respostas
-
Voce tem que ler a informaçao e guardar em uma variavel, assim:
string leitura= Console.ReadLine(); if ( leitura== "Ricardo") { nome = "Ricardo"; idade = 44; emprego = "Professor de educação física"; nacionalidade = "Português"; } if (leitura == "Isabel") { nome = "Isabel"; idade = 44; emprego = "Professora de educação especial"; nacionalidade = "Portuguesa"; }
att
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".- Marcado como Resposta RyuzakiPT terça-feira, 5 de dezembro de 2017 20:25
- Não Marcado como Resposta RyuzakiPT terça-feira, 5 de dezembro de 2017 20:25
- Editado William John Adam TrindadeModerator segunda-feira, 11 de dezembro de 2017 16:03
-
-
Voce vai ter que usar uma estrutura em cascata ELSE IF
Testei aqui e funciona
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Familia { class Program { static void Main(string[] args) { string nome, emprego, nacionalidade; byte idade; nome = ""; idade = 0; emprego = " "; nacionalidade = ""; Console.Write("Name:"); string leitura=Console.ReadLine() ; if (leitura == "Ricardo") { nome = "Ricardo"; idade = 44; emprego = "Professor de educação física"; nacionalidade = "Português"; } else if (leitura == "Isabel") { nome = "Isabel"; idade = 44; emprego = "Professora de educação especial"; nacionalidade = "Portuguesa"; } else if (leitura == "Diogo") { nome = "Diogo"; idade = 14; emprego = "Estudante"; nacionalidade = "Português"; } else if (leitura == "Filipa") { nome = "Filipa"; idade = 18; emprego = "Estudante"; nacionalidade = "Portuguesa"; } else { Console.Write("Nome inválido"); } Console.Write("Nome: " + nome + "; Idade: " + idade + "; Emprego: " + emprego + "; Nacionalidade: " + nacionalidade); Console.Read(); } } }
Veja o resultado
Name:Diogo
Nome: Diogo; Idade: 14; Emprego: Estudante; Nacionalidade: PortuguêsExsitem maniera bem mais elegantes de fazer esse codigo, mas da forma que esta fica facil de entnder a logica.
William John Adam Trindade
Analyste-programmeur
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Editado William John Adam TrindadeModerator terça-feira, 5 de dezembro de 2017 20:34
-
-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Familia
{
class Program
{
static void Main(string[] args)
{
string nome, emprego, nacionalidade, leitura = Console.ReadLine(); ;
byte idade;
nome = "";
idade = 0;
emprego = " ";
nacionalidade = "";
Console.Write("Name:");
if (leitura == "Ricardo")
{
nome = "Ricardo";
idade = 44;
emprego = "Professor de educação física";
nacionalidade = "Português";
}
else if (leitura == "Isabel")
{
nome = "Isabel";
idade = 44;
emprego = "Professora de educação especial";
nacionalidade = "Portuguesa";
}
else if (leitura == "Diogo")
{
nome = "Diogo";
idade = 14;
emprego = "Estudante";
nacionalidade = "Português";
}
else if (leitura == "Filipa")
{
nome = "Filipa";
idade = 18;
emprego = "Estudante";
nacionalidade = "Portuguesa";
}
else
{
Console.Write("Nome inválido");
}
Console.Write("Nome: " + nome + "; Idade: " + idade + "; Emprego: " + emprego + "; Nacionalidade: " + nacionalidade);
Console.Read();
}
}
}_______________________________________________________________________________
O código está assim agora
- Editado RyuzakiPT terça-feira, 5 de dezembro de 2017 20:51
-
Nao coloque a leitura aqui:
string nome, emprego, nacionalidade, leitura = Console.ReadLine(); ;
Voce pode fazer assim:
string nome, emprego, nacionalidade, leitura;
e depois:
Console.Write("Name:"); leitura=Console.ReadLine() ;
Console.ReadLine é um comando de leitura. Ele interrompe o fluxo do programa e espera que voce digite algo e pressione a tecla Enter. Se voce coloca no topo, o programa para la e nao depois da mensagem
Name:
Por isso voce pode nao estar entrando a informaçao no momento correto.
Att
William John Adam Trindade
Analyste-programmeur
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Editado William John Adam TrindadeModerator terça-feira, 5 de dezembro de 2017 21:26
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 11 de dezembro de 2017 12:34
-
-
Isso no seu codigo original... mas na ultima versao do seu codigo isso nao deveria ocorrer.
Voce chegou a testar o meu codigo?
Att
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".- Editado William John Adam TrindadeModerator terça-feira, 5 de dezembro de 2017 21:39
-
-
Voce poderia me dizer o que exatamente nao funcionou? Deu algum tipo de erro?
Diga-me extamente o que esta dando errado. Nos meus testes aqui funciona perfeitamente.
Att
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta". -
Ao escrever o nome Isabel, por exemplo, clico no enter e só recebo as informações se voltar a escrever outra vez e a clicar no enter e deveria ser à primeira. Isso acontece com o Diogo só dando à terceira e com o nome Filipa só dando à quarta.
-
Tem certeza que esta usando exatamente o codigo que eu propus? Isso ocorre somente na sua versao inicial
Att
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".- Editado William John Adam TrindadeModerator terça-feira, 5 de dezembro de 2017 22:04
-
Estranho mesmo.
Não tem como o código do William estar errado. É um código simples, e que não tem como ter outra interpretação. Creio que tem algum erro seu na hora da cópia.
Copie de novo e tente. Tenho certeza que dará certo.
Antero Marques
_____________________________________________________________________________
Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.- Editado Antero Marques quarta-feira, 6 de dezembro de 2017 02:16
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 11 de dezembro de 2017 12:34
-
Bom dia,
Por falta de retorno essa thread está encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.