此应用程序相当简单,我没有收到任何错误或警告。 它只返回“Hello”这个词,而不会转到“Bill”这个词。它的工作原理是键入Hello和Bill。
研究: http://www.dotnetperls.com/split
https://msdn.microsoft.com/en-us/library/dy85x1sa(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.string.split(v=vs.110).aspx
任何提示或修正都会很棒!
static void Main(string[] args)
{
//Varaibles and Condition Types
string WordiIntitalString = Console.ReadLine();
//outputs "hello bill"
char[] delimiterChars = { ' ' };
string[] WordArray = WordiIntitalString.Split(delimiterChars);
foreach(var word in WordArray)
{
//Console.WriteLine(word);
if (word.Equals("hello"))
{
Console.WriteLine(word);
Thread.Sleep(1000);
if (word.Contains("bill"))
{
Console.WriteLine("jarvis");
Thread.Sleep(1000);
}
}
Thread.Sleep(1000);
}
包含试图在代码之上寻找分支。所以,如果你做了你好账单,那么它找到了分支机构。这个在我看来非常有效,但如果您对更好的方法有任何建议,我会赞赏评论!
答案 0 :(得分:2)
您已嵌套if
语句,条件相互矛盾。如果同一个词也满足word.Contains("bill")
,则无法满足word.Equals("hello")
。
换句话说,如果word
进入第一个if
,它也可能进入第二个Console.WriteLine("jarvis")
。这意味着永远无法访问您的命令if
。
除了嵌套if (word.Equals("hello"))
{
Console.WriteLine(word);
Thread.Sleep(1000);
} else if (word.Contains("bill")) // <-- key change is here
{
Console.WriteLine("jarvis");
Thread.Sleep(1000);
}
Thread.Sleep(1000);
之外,您可能打算在替代方案中进行嵌套:
from sqlalchemy import cast, String
markers = session.query(Markers) \
.filter(cast(Markers.lat, String()).like('%' + data['lat'] + '%'))
答案 1 :(得分:0)
你已经嵌套了我的朋友
ComputeWordScore
答案 2 :(得分:0)
内部if条件永远不会运行。在第一个循环中,你会得到“你好”这个词。并执行外部if条件中的代码。在第二个循环中,我们有&#39; bill&#39;而外部if条件忽略了这一点,因此内部if条件永远不会运行。请尝试这样做:(放置在每个循环内部)
if (word.Equals("hello"))
{
Console.WriteLine(word);
Thread.Sleep(1000);
}
else if (word.Contains("bill"))
{
Console.WriteLine("jarvis");
Thread.Sleep(1000);
}
else
{
Thread.Sleep(1000);
}