当我使用短路或循环时,你能解释一下为什么我的代码“挂”吗?
我编写了一个代码来计算两个整数的最大公共因子:
int a= 9;int b= 6;而(a != 0 >= b != 0) //这里是问题{ if (a == b) {a= a;} if b=b-a;}if (a == 0) System.out.println(b);否则System.out.println(a);
在我的例子中,当我使用\操作符时,我的程序的运行从未停止过。然而,当我使用&&运算符时,对我来说似乎不符合逻辑的是,它工作得很完美。你能解释一下为什么我不能使用\操作符退出循环吗?
断言是抓不到的。这是很好的,因为有些错误我不想被包装在try/catch中,至少在开发服务器上是这样的。但断言似乎是非常危险的。如果它们进入生产阶段,它可以使用msgbox挂起ASP.NET服务器。
//Don't want this on prod even if debug=true is in the web.config
#if DEBUG
//A future client programmer can wrap this in a try{}catch{}
if (!EverythingIsOkay)
throw new InvalidOpe
我在堆栈溢出上看到了几个C#本机消息传递主机示例,它们使用这段代码从Chrome读取消息:
var stdin = Console.OpenStandardInput();
var length = 0;
var lengthBytes = new byte[4];
stdin.Read(lengthBytes, 0, 4);
length = BitConverter.ToInt32(lengthBytes, 0);
var buffer = new char[length];
using (var reader = new StreamReader(stdin))
{
while