Matlab 中的 break 语句
Break statement in Matlab
对于某个数 n
我必须找到下一个比 n
大的数,它是质数。
我不得不在 Matlab 中解决这个问题。
下面是我的代码:
解决方案1
function k = next_prime(n)
while n<10000000000
n=n+1;
if isprime(n)==true
k=n;
break
end
end
end
这样问题就正确解决了,但是我最初的解决方案是:
解决方案2
function k = next_prime(n)
while n<10000000000
n=n+1;
if isprime(n)==true
k=n;
end
break
end
end
Solution1 与 Solution2 之间的唯一区别是 break
语句位置。
为什么 Solution1 可以,而 Solution2 不行?
MATLAB中的break
语句
terminates the execution of a for or while loop. Statements in the loop after the break statement do not execute.
在解决方案 2 中,您保证在每次循环迭代时都会中断,而不仅仅是在它是质数时。因此它总是只 运行 循环一次,将 n 设置为 n+1 然后在不设置 k 的情况下中断(除非巧合 n+1 是素数)。
如果你修正了缩进,它可能会帮助你看到它:
function k = next_prime(n)
while n<10000000000
n=n+1;
if isprime(n)==true
k=n;
end
break
end
end
所以循环做了 3 件事,它递增 n
,它检查 n
是否为质数,然后它总是退出。
解法一,只要如果 n
是质数就退出,这显然是你想要的。
对于某个数 n
我必须找到下一个比 n
大的数,它是质数。
我不得不在 Matlab 中解决这个问题。
下面是我的代码:
解决方案1
function k = next_prime(n)
while n<10000000000
n=n+1;
if isprime(n)==true
k=n;
break
end
end
end
这样问题就正确解决了,但是我最初的解决方案是:
解决方案2
function k = next_prime(n)
while n<10000000000
n=n+1;
if isprime(n)==true
k=n;
end
break
end
end
Solution1 与 Solution2 之间的唯一区别是 break
语句位置。
为什么 Solution1 可以,而 Solution2 不行?
MATLAB中的break
语句
terminates the execution of a for or while loop. Statements in the loop after the break statement do not execute.
在解决方案 2 中,您保证在每次循环迭代时都会中断,而不仅仅是在它是质数时。因此它总是只 运行 循环一次,将 n 设置为 n+1 然后在不设置 k 的情况下中断(除非巧合 n+1 是素数)。
如果你修正了缩进,它可能会帮助你看到它:
function k = next_prime(n)
while n<10000000000
n=n+1;
if isprime(n)==true
k=n;
end
break
end
end
所以循环做了 3 件事,它递增 n
,它检查 n
是否为质数,然后它总是退出。
解法一,只要如果 n
是质数就退出,这显然是你想要的。