或运算符“ ||”的替代形式吗?可以在我的C#代码中使用吗? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了或运算符“ ||”的替代形式吗?可以在我的C#代码中使用吗? [关闭]相关的知识,希望对你有一定的参考价值。
我一直在关注此视频教程,以创建数字生成器和OR运算符“ ||”视频中使用的视频只会给我一个错误。我不知道是否可以使用其他OR运算符来使代码正常工作,或者是否在当前创建的方法中出错。如果有任何帮助,我正在使用Visual Studio 2017和.NET Framework 4.6.1。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// This is the code for your desktop app.
// Press Ctrl+F5 (or go to Debug > Start Without Debugging) to run your app.
namespace DesktopApp3
{
public partial class Form1 : Form
{
//intialize
Random randomNumGen = new Random();
int val = 0;
public Form1()
{
InitializeComponent();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
// Click on the link below to continue learning how to build a desktop app using WinForms!
System.Diagnostics.Process.Start("http://aka.ms/dotnet-get-started-desktop");
}
private void button1_Click(object sender, EventArgs e)
{
generateNumbers();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void quitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
}
private void generateNumbers()
{
val = randomNumGen.Next(1, 40);
Number1.Text = val.ToString();
val = randomNumGen.Next(1, 40);
while (val.ToString().Equals(Number1.Text))
val = randomNumGen.Next(1, 40);
Number2.Text = val.ToString();
val = randomNumGen.Next(1, 40);
while (val.ToString().Equals(Number1.Text)) || val.ToString().Equals(Number2.Text);
val = randomNumGen.Next(1, 40);
Num3.Text = val.ToString();
val = randomNumGen.Next(1, 40);
while (val.ToString().Equals(Number1.Text)) || val.ToString().Equals(Number2.Text) || val.ToString().Equals(Num3.Text);
val = randomNumGen.Next(1, 40);
Num4.Text = val.ToString();
val = randomNumGen.Next(1, 40);
while (val.ToString().Equals(Number1.Text)) || val.ToString().Equals(Number2.Text) || val.ToString().Equals(Num3.Text) || val.ToString().Equals(Num4.Text);
val = randomNumGen.Next(1, 40);
Num5.Text = val.ToString();
}//end of RandomNumGen
}
}
答案
您忘记了一个右括号,并在有||
运算符的情况下,在每个结尾处放了一个错位的分号。
Edit:括号不丢失,放错了位置:)将||
放在while
的条件之外。
// Wrong :
while (val.ToString().Equals(Number1.Text)) || val.ToString().Equals(Number2.Text); // Remove semi-colon and add a parenthesis
// Right (EDIT thanks to Barns):
while (val.ToString().Equals(Number1.Text) || val.ToString().Equals(Number2.Text))
复制粘贴的乐趣:)
我也建议您在{}
内容周围使用方括号while
,即使您只有一行,也可以正确地检测到错误。
另一答案
您需要更改:
while (val.ToString().Equals(Number1.Text)) || val.ToString().Equals(Number2.Text)
收件人:
while (val.ToString().Equals(Number1.Text) || val.ToString().Equals(Number2.Text))
基本上,您的代码需要说“ while(true或true)”,但是您过早关闭了括号并写了“ while(true)或true)”]
以上是关于或运算符“ ||”的替代形式吗?可以在我的C#代码中使用吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章