我见过其他问题,但答案看起来很复杂,无法理解,所以继续我的代码:
注意:我是c shar语言的新手
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Input_Program
{
class Program
{
private static void Main()
{
Console.WriteLine("Welcome to my bool program!");
Console.WriteLine("Input a NON capital y or n when told to.");
char Y;
char N;
if(Y = 'y')
{}
}
}
}
由于 感谢
答案 0 :(得分:7)
您缺少一个等号:if(Y == 'y')
您现在拥有它的方式,它将值'y'
分配给Y
,这也是赋值表达式的结果。它是char
,而编译器需要bool
结果。
<强>更新强>
当然,正如thephpdeveloper所说,编译器还会坚持在读取之前为Y
分配一个值。所以:
char Y = 'y';
char N = 'n';
if(Y == 'y')
{}
答案 1 :(得分:2)
单=
用于分配。您正在寻找的是等于运算符==
。
答案 2 :(得分:1)
在您提供的代码中
(Y = 'y')
评估为'y'
,因为新作业将始终作为成功分配的结果返回。这样,'y'
语句中无法将if
转换为布尔值进行比较。
=
是一个赋值运算符。要比较两个值,您应该使用==
代替。
除此之外,你需要使用(char)Console.Read()
来让程序从用户输入中读取一个字符:
char Y = (char) Console.Read();
if(Y == 'y'){
Console.WriteLine('You pressed YES.');
}else{
Console.WriteLine('You probably pressed NO.');
}