Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 你能解释一下这个方法的作用吗?_C# - Fatal编程技术网

C# 你能解释一下这个方法的作用吗?

C# 你能解释一下这个方法的作用吗?,c#,C#,我们在一本书中找到了这种方法 据我所知,我想检查一个数字是否按升序排列 例如,数字54321(所有数字都按升序排列) 然而,我不明白这个方法是如何工作的。。。为什么返回0或1 你能用一种简单的方式向我解释一下这种方法会发生什么吗 static int f(long n) { while(n>10) { if (n % 10 > n / 10 % 10) return 0; n = n / 10;

我们在一本书中找到了这种方法

据我所知,我想检查一个数字是否按升序排列

例如,数字54321(所有数字都按升序排列)

然而,我不明白这个方法是如何工作的。。。为什么返回0或1

你能用一种简单的方式向我解释一下这种方法会发生什么吗

 static int f(long n)
    {
        while(n>10)
        {
            if (n % 10 > n / 10 % 10) return 0;
            n = n / 10;


        }
        return 1;
    }

n%10
获取单元所在位置的数字,
n/10%10
获取单元所在位置的数字

作者正在比较这两个数字,如果单元中的数字大于十位中的数字,则返回
0

如果不是,则他将n除以10,以丢弃该单元中的数字。现在,十位数的数字现在是单位位数,百位数的数字现在是十位数,前面的步骤重复


如果在您不断丢弃最后一个数字后该数字变得小于或等于10,如果它没有返回0,它将返回1,这表明
n
中的所有数字都是从左到右降序排列的。

提示:值
n%10
代表什么?值
n/10%10
代表什么?值
n/10
代表什么?(顺便说一句,在54321这个数字中,数字是降序的,而不是升序的。)不过,我想知道作者没有返回数字的原因是什么boolean@dcastro在第一次猜测中,我认为作者返回1,而0,因为这就是C++中的方法。0为false,而不是0为true。它在C#中并没有真正的用处,但认为它像C一样工作的人会做出这样的假设。@Kevin但是一本书的作者肯定会知道他使用的语言的第一件事。@JeppeStigNielsen
n>=10
测试
n
至少有两个数字<代码>n>10没有。