提交 226c1f86 编写于 作者: F feilong

增加C#第7题

上级 dda3a2ad
{
"type": "code_options",
"author": "huanhuilong",
"source": "Guard.md"
}
\ No newline at end of file
# 分支判断
实现一个函数 `void Path(bool a, bool b, bool c, bool d)`,要求
* 如果a、b、c、d 都为 true,就输出`a->b->c->d`
* 如果a、b、c 都为 true,而d为false,就输出`a->b->c`
* 如果a、b 都为 true,而c为false,就输出`a->b->c->d`
* 如果a 为 true,而b为false,就输出`a`
* 如果a 为 false,就输出空字符串``
以下实现不对的是?
## 答案
```csharp
void Path(bool a, bool b, bool c, bool d){
if(a){
if(b){
if(c){
if(d){
Console.WriteLine("a->b->c");
}else{
Console.WriteLine("a->b->c->d");
}
}else{
Console.WriteLine("a->b");
}
}else{
Console.WriteLine("a");
}
}else{
Console.WriteLine("");
}
}
```
## 选项
### A
```csharp
string PathValue(bool a, bool b, bool c, bool d){
if(!a){
return "";
}
if(!b){
return "a";
}
if(!c){
return "a->b";
}
if(!d){
return "a->b->c";
}
return "a->b->c->d";
}
void Path(bool a, bool b, bool c, bool d){
Console.WriteLine(PathValue(a,b,c,d));
}
```
### B
```csharp
void Path(bool a, bool b, bool c, bool d){
if(!a){
Console.WriteLine("");
return;
}
if(!b){
Console.WriteLine("a");
return;
}
if(!c){
Console.WriteLine("a->b");
return;
}
if(!d){
Console.WriteLine("a->b->c");
return;
}
Console.WriteLine("a->b->c->d");
}
```
### C
```csharp
void Path(bool a, bool b, bool c, bool d){
if(a){
if(b){
if(c){
if(d){
Console.WriteLine("a->b->c->d");
}else{
Console.WriteLine("a->b->c");
}
}else{
Console.WriteLine("a->b");
}
}else{
Console.WriteLine("a");
}
}else{
Console.WriteLine("");
}
}
```
......@@ -2,5 +2,7 @@
"node_id": "csharp-d1ae8aa6b969476db5177062e3980a2f",
"keywords": [],
"children": [],
"export": []
"export": [
"Guard.json"
]
}
\ No newline at end of file
void Path1(bool a, bool b, bool c, bool d){
if(a){
if(b){
if(c){
if(d){
Console.WriteLine("a->b->c->d");
}else{
Console.WriteLine("a->b->c");
}
}else{
Console.WriteLine("a->b");
}
}else{
Console.WriteLine("a");
}
}else{
Console.WriteLine("");
}
}
void Path2(bool a, bool b, bool c, bool d){
if(!a){
Console.WriteLine("");
return;
}
if(!b){
Console.WriteLine("a");
return;
}
if(!c){
Console.WriteLine("a->b");
return;
}
if(!d){
Console.WriteLine("a->b->c");
return;
}
Console.WriteLine("a->b->c->d");
}
string PathValue(bool a, bool b, bool c, bool d){
if(!a){
return "";
}
if(!b){
return "a";
}
if(!c){
return "a->b";
}
if(!d){
return "a->b->c";
}
return "a->b->c->d";
}
void Path3(bool a, bool b, bool c, bool d){
Console.WriteLine(PathValue(a,b,c,d));
}
void Path3(bool a, bool b, bool c, bool d){
if(a){
if(b){
if(c){
if(d){
Console.WriteLine("a->b->c");
}else{
Console.WriteLine("a->b->c->d");
}
}else{
Console.WriteLine("a->b");
}
}else{
Console.WriteLine("a");
}
}else{
Console.WriteLine("");
}
}
Path(true,true,false,false);
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册