c#入门级(真的)。
今天我遇到了一个问题,创建一个控制台应用程序,允许人们输入他们的姓氏,名字和年龄。如果他们未满18岁,他们应该被归类为"青少年",如果他们是18岁或以上,他们是成年人。唯一的问题是,它应该在很少的知识和对其用法的基本理解的情况下完成。
我想到的代码:
static void Main(string[] args)
{
Console.WriteLine("Vul uw voornaam, familienaam en leeftijd in.");
string voorNaam = Console.ReadLine();
string familieNaam = Console.ReadLine();
int leeftijd = int.Parse(Console.ReadLine());
string groepJeugd = "Jeugd";
string groepVolwassen = "Volwassen";
if (leeftijd < 18)
{
Console.WriteLine($"{voorNaam} {familieNaam}: {groepJeugd}");
}
else if (leeftijd >= 18)
{
Console.WriteLine($"{voorNaam} {familieNaam}: {groepVolwassen}");
}
Console.ReadLine();
}
小提示,我不知道用"else if"是否正确。如果不允许使用else,我考虑过使用switch,但由于课程是关于If, else等…我认为在这里用它是不对的。
设置成人的默认值,未满18岁则覆盖。
static void Main(string[] args)
{
Console.WriteLine("Vul uw voornaam, familienaam en leeftijd in.");
string voorNaam = Console.ReadLine();
string familieNaam = Console.ReadLine();
int leeftijd = int.Parse(Console.ReadLine());
string group = "Volwassen";
if(leeftijd < 18)
{
group = "Jeugd";
}
Console.WriteLine($"{voorNaam} {familieNaam}: {group}");
Console.ReadLine();
}
希望不禁止使用return
static void Main(string[] args)
{
Console.WriteLine("Vul uw voornaam, familienaam en leeftijd in.");
string voorNaam = Console.ReadLine();
string familieNaam = Console.ReadLine();
int leeftijd = int.Parse(Console.ReadLine());
string groepJeugd = "Jeugd";
string groepVolwassen = "Volwassen";
if (leeftijd < 18)
{
Console.WriteLine($"{voorNaam} {familieNaam}: {groepJeugd}");
Console.ReadLine();
return;
}
Console.WriteLine($"{voorNaam} {familieNaam}: {groepVolwassen}");
Console.ReadLine();
}
如果你使用if
而不是else if
,它也会工作。所以在你的代码中会有2个if条件
if (leeftijd < 18)
{
Console.WriteLine($"{voorNaam} {familieNaam}: {groepJeugd}");
}
if (leeftijd >= 18)
{
Console.WriteLine($"{voorNaam} {familieNaam}: {groepVolwassen}");
}
的另一种方法:
一旦第一个条件为真,就可以返回。
在这种情况下,您不需要另一个条件。
if (leeftijd < 18)
{
Console.WriteLine($"{voorNaam} {familieNaam}: {groepJeugd}");
return ;
}
Console.WriteLine($"{voorNaam} {familieNaam}: {groepVolwassen}");
第一步
var output=string.Empty;
if (leeftijd < 18) output= $"{voorNaam} {familieNaam}: {groepJeugd}";
if (leeftijd >= 18) output= $"{voorNaam} {familieNaam}: {groepVolwassen}";
Console.WriteLine(output);
第二种方式,不使用else,但不确定是否允许
var output = leeftijd < 18 ? $"{voorNaam} {familieNaam}: {groepJeugd}":
$"{voorNaam} {familieNaam}: {groepVolwassen}";
Console.WriteLine(output);
hello,我使用?:
操作符来执行此操作,并获得true或false
(leeftijd >= 18 ? groepVolwassen : groepJeugd)
/* if "leeftijd" is >= 18 put "groepVolwassen" and else with : put "groepJeugd" */
及其最终
Console.WriteLine($"{voorNaam} {familieNaam}: {(leeftijd >= 18 ? groepVolwassen : groepJeugd)}");
我希望它能帮助你,如果你不想使用else
我认为这是一个狡猾的问题,技术上没有其他的选择,这样简单的代码,编译器为你做这个选择。但是,您可以通过几种方式混淆它。
if / else
if / else if
<-¯_(ツ)_/¯
if return
?:
operator <- if/else anywayswitch
while loop return
<-如果你想得到真的的 子>
<<em>注意:你可以使用一个异常来进行分支,通过引起任何奇怪的情况,比如除以0异常,但是我把这个荒谬的地方删掉了
if/else
if (leeftijd < 18)
Console.WriteLine($"{voorNaam} {familieNaam}: {groepJeugd}");
else
Console.WriteLine($"{voorNaam} {familieNaam}: {groepVolwassen}");
Console.ReadLine();
如果返回
if (leeftijd < 18)
{
Console.WriteLine($"{voorNaam} {familieNaam}: {groepJeugd}");
Console.ReadLine();
return;
}
Console.WriteLine($"{voorNaam} {familieNaam}: {groepVolwassen}");
Console.ReadLine();
条件操作符
Console.WriteLine(
leeftijd < 18
? $"{voorNaam} {familieNaam}: {groepJeugd}"
: $"{voorNaam} {familieNaam}: {groepVolwassen}");
Console.ReadLine();
switch (leeftijd)
{
case < 18:
Console.WriteLine($"{voorNaam} {familieNaam}: {groepJeugd}");
break;
case >= 18:
Console.WriteLine($"{voorNaam} {familieNaam}: {groepVolwassen}");
break;
}
Console.ReadLine();
while循环返回
while (leeftijd < 18)
{
Console.WriteLine($"{voorNaam} {familieNaam}: {groepJeugd}");
Console.ReadLine();
return;
}
Console.WriteLine($"{voorNaam} {familieNaam}: {groepVolwassen}");
Console.ReadLine();
然而在所有情况下(例外情况除外),编译器都会将这些简单的情况转换为如下内容
if (num < 18)
{
...
Console.WriteLine(..);
Console.ReadLine();
}
else
{
...
Console.WriteLine(..);
Console.ReadLine();
}
简而言之,无论你如何分支,编译器都只有一堆比较操作符,它确实有一个切换类型指令,尽管在这种简单的情况下,它还是将其编译为if
:/
Beq
- Branch on equalBne
-分支不等于Bge
-分支大于或等于Bgt
-分支大于Ble
-分支小于或等于Blt
-分支小于