本书英文名:Beginning Visual C# 2012 Programming
勘误在原书英文网站上,但是最后一个勘误有误:
Chapter3后面的练习题Exercise4中让用括号标出下式的运算顺序:
resultVar += var 1 * var2 + var3 % var4 / var5;
按照C语言,%, *, /的优先级相同,左结合性,所以知道var3 % var4 / var5从左往右依次计算,所以应标为(var3 % var) / var5,结果原书上说(var3 % var) / var5和var3 % (var / var5)都是正确的,勘误以后虽然只剩下了一种正确,但却说是var3 % (var / var5):
用C#试一下:
using System;
namespace SpaceCowboy
{
class Helloworld
{
public static void Main(string[] args)
{
int i,j,k;
i=2%6/2;
j=(2%6)/2;
k=2%(6/2);
Console.WriteLine("i={0},j={1},k={2}",i,j,k);
Console.ReadLine();
}
}
}
输出:
i=1,j=1,k=2
显然i == j != k,依然是C语言的规则。