C# 无法将int隐式转换为bool
问题出在第19行。我原以为是while语句,但注意到它的第19行。我尝试过各种方法,但我找不到解决错误的方法C# 无法将int隐式转换为bool,c#,while-loop,C#,While Loop,问题出在第19行。我原以为是while语句,但注意到它的第19行。我尝试过各种方法,但我找不到解决错误的方法 using System; class MainClass { public static void Main (string[] args) { Random r = new Random(); int Randomnum= r.Next(0,100); int x = 0; while(x != Randomnum){
using System;
class MainClass {
public static void Main (string[] args) {
Random r = new Random();
int Randomnum= r.Next(0,100);
int x = 0;
while(x != Randomnum){
x = Convert.ToInt32(Console.ReadLine());
if (x < Randomnum)
Console.WriteLine("higher");
if (x > Randomnum)
Console.WriteLine("lower");
if (x = Randomnum)
Console.WriteLine("corrct!");
}
}
}
使用系统;
类主类{
公共静态void Main(字符串[]args){
随机r=新随机();
int Randomnum=r.Next(0100);
int x=0;
while(x!=Randomnum){
x=Convert.ToInt32(Console.ReadLine());
if(xRandomnum)
控制台。写线(“下”);
如果(x=Randomnum)
控制台。WriteLine(“correct!”);
}
}
}
它的语法问题
如果(x=Randomnum)
使用双等号进行比较
如果(x==Randomnum)
single equal用于赋值,这就是为什么if条件没有收到bool值并显示此错误。其语法问题
如果(x=Randomnum)
使用双等号进行比较
如果(x==Randomnum)
single equal用于赋值,这就是为什么if condition没有收到bool值并显示此错误。看起来您遇到了Nauman提到的语法问题。相等运算符(=)是比较运算符,用于检查它们的操作数是否相等,并且相等运算符(=)比较字符串的内容。==运算符比较引用标识,而=方法仅比较内容
将if
(x=Randomnum)
更改为if(x==Randomnum)
,它应该可以工作。看起来您有一个像Nauman提到的语法问题。相等运算符(=)是比较运算符,用于检查它们的操作数是否相等,并且相等运算符(=)比较字符串的内容。==运算符比较引用标识,而=方法仅比较内容
将if
(x=Randomnum)
更改为if(x==Randomnum)
,它应该可以工作。最后一个条件有一个=
(赋值)而不是两个=
(比较)更正->更正,抱歉。没问题!我自己没注意到,谢谢。我不明白为什么一个19是奇怪的。其他两条if语句可以正常工作,但如果x=randomnum:/@OliverSharp,则不行,因为x=randomnum
是一个赋值。c#中的赋值总是返回赋值。在您的例子中,是一个整数,不能用作if
子句中的条件。您需要比较运算符x==Randomnum
(double==)上一个条件有一个=
(赋值)而不是double=
(比较)correct
->correct
,很抱歉。很好!我自己没注意到,谢谢。我不明白为什么一个19是奇怪的。其他两条if语句可以正常工作,但如果x=randomnum:/@OliverSharp,则不行,因为x=randomnum
是一个赋值。c#中的赋值总是返回赋值。在您的例子中,是一个整数,不能用作if
子句中的条件。您需要x==Randomnum
(double==)作为比较运算符