当功能返回值时,Java和Python的差异



java中的代码: -

int check_prime()//Function to check if a number is a prime number
{
    int n = Integer.parseInt(br.readLine());//Number to be checked
    for(int i=2;i<n;i++)
    {
        if(n%i==0)
        {
            return 0;
        }
    }
    return 1;
}

python中的代码: -

def check_prime():#Function to check if a number is a prime number
n1=input("Enter the number")#Number to be checked
n=int(n1)
for i in range(2,n,1):
    if n%i==0:
        return False
return True

在Java中,每当函数返回值时,它会终止自身,并且不会执行任何其他语句。因此,如果一个数字不是素数,它将返回0并停止。Python也会发生同样的事情吗?因为据我所能测试,这没有发生。感谢您的帮助

您的循环正在做截然不同的事情。我相信您的Python循环应该是:

for i in range(2, n):

由于您忽略了范围生成器,因此循环通过元组循环(2,n,1(,而不是从2开始并在n之前停止的数字序列。您也不需要指定步骤参数。默认情况下是1。

返回语句在两种语言中都以相同的方式工作:它终止函数。

另外,您应该使用的Java中的布尔类型,而不是代表true/false值。

最新更新