假设我有以下代码块: x <- 0
while (x < 50){
for (i in letters){
print(i)
x <- x + 10
}
} 操作的顺序是什么?即使for循环中有更多循环,While stop条件也适用吗? 我测试了一下,它运行了整个for循环,尽管x达到了250。 有没有办法在for循环之前添加一条规则,让它遵循while循环?
据我的老师说,一个for循环总是至少执行一次,即使条件不满足。
示例(就像我从C++中知道的那样):
for (int i=6; i <=5; i++) {
//irrelevant for this question
}
据她说,这个循环至少执行一次,但它没有,还是我遗漏了什么?是否有任何情况,无论哪种语言,这将在哪里执行一次?为了提前消除这种想法:是的,它是关于循环,而不是同时循环。
编辑
谢谢你这么快的回答,我想这个案子已经结案了。祝你白天/晚上愉快。
我不太明白如何确定循环不变量。我知道在循环之前、循环之后和每次循环迭代期间都是正确的,但仅此而已。这是我正在解决的一个示例问题,你如何找到它的循环不变量?
i, temp : integer;
values : array[1..100] of integer;
x := 1;
while x < 100 loop
if values[x] > values[x+1] then begin
temp := values[x];
values[x] := values[x+1];
values[x+1] := temp;
end if;
x
int main (int argc, const char * argv[]){
@autoreleasepool {
int x = 1;
for (x = 1; x <= 10; x++) {
NSLog(@"%i",x); //the answer here is 10.
}
NSLog(@"Number %i",x); //the answer here is 11.
}
return 0;
}
所以我的问题是,为什么当我在fo
对不起,如果我再问上一个问题,但我找不到这个问题的具体答案。除了基本的循环迭代之外,我如何为嵌套循环迭代创建一个公式,例如:
for (int i =0; i < N; i++)
我得到了基本循环计数迭代的基本概念:
for (int i =0; i < N; i++)
布尔条件等于某个变量(例如N),然后从初始变量(例如i)中减去,然后除以嵌套的循环数(在本例中为1,因为它不是嵌套的)。因此,此循环的迭代次数为:
(N - i) / 1
例如,为了查找嵌套循环的迭代,这将在循环中重复,直到您到达最内部的循环,然后对迭代计数进行多个所有循环。
我只是不理解更复杂的循环,有不同的增量
在C#中,一个问题已经困扰了我一段时间,那就是while和for循环之间实际主要区别是什么。这仅仅是纯粹的可读性,也就是说,你可以在for循环中做的所有事情都可以在while循环中完成,只是在不同的地方。所以请看下面这些例子:
int num = 3;
while (num < 10)
{
Console.WriteLine(num);
num++;
}
vs
for (int x = 3; x < 10; x++)
{
Console.WriteLine(x);
}
这两个代码循环产生相同的结果,两者之间的唯一区别是for循环强制您声明一个新变量,并在每
我试图在一个包中调用一个驱动过程中的多个过程。逻辑是这样的:如果它遇到来自查找表的特定值,它应该调用特定的过程,并继续为该查找表中的所有后续值调用后续过程。问题是,我的代码在这样做的时候陷入了无限循环。有人能帮我解决这个问题吗?
PROCEDURE TEST(
a_archiveDays_in IN NUMBER,
a_amountInstancesToCommit_in IN NUMBER,
a_result_out OUT INTEGER,
a_resultException_out OUT VARCHAR,
stage_va
我是python编程的初学者。我写了下面的程序,但它不能按我想要的方式执行。代码如下:
b=0
x=0
while b<=10:
print 'here is the outer loop\n',b,
while x<=15:
k=p[x]
print'here is the inner loop\n',x,
x=x+1
b=b+1
有人能帮帮我吗??我会非常感激的!你好,吉拉尼
public class test {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println(i);
for (i = 0; i < 1; i++) {
System.out.println(i);
}
}
}
}
我编写了一段代码,从google工作表中提取列标题(工作表中的第一行),并将它们与对象数组进行比较。对象数组中的每个对象都有3个属性:“问题”、“答案”和“类别”。代码将每列的标题与数组中每个对象的“array”属性进行比较。
如果它们相似,它应该将列的索引作为关键字添加到某个字典中,并将其值设置为保存该问题的答案和类别的数组。不需要过多地解释我为什么要这样做,但简单地说,我构建这个逻辑是为了能够对申请者的一些问题的答案进行评分(因此将问题的索引与其正确答案和类别联系起来)。代码如下:
for (i = 0; i<columnHeaders[0].length; i++){
f
我正在使用C# 2012 VS编写一个骰子辊winforms应用程序。骰子辊是为玩暗影运行桌面而设置的。我觉得GUI中可能有太多的代码,但我不确定它应该如何格式化。我也非常愿意听取一般意见。这是我毕业后第一次尝试自己构建的项目。我以前从未尝试过GUI应用程序。
GitHub
用户控制代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text
我试图运行我用HTML编写的包含javascript的代码,但它没有运行。有人能指出哪里出了问题吗? <!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function math() {
var a = 1;
var b = 0;
var c = 0;
var sum = 0;
for (var a = 1; a <10; a++) {
sum = a+c;
c = a+b;
a = b;
}
alert(s
我试图用Python实现卷积神经网络。
但是,当我使用signal.convolve或np.convolve时,它不能对X,Y(X是3d,Y是2d)进行卷积。X正在训练小型批次。Y是过滤器。我不想为每一个训练向量做循环,比如:
for i in xrange(X.shape[2]):
result = signal.convolve(X[:,:,i], Y, 'valid')
....
那么,我能用什么函数有效地进行卷积吗?
如何计算这段代码的大O运行时效率?我的直觉告诉我它是O(n^3),但我不确定,因为我不能真正确定循环是独立的还是依赖的。
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<=n; k++)
print ("%d %d %d/n", i, j, k);
下面的代码按预期执行。但是,中断函数并没有阻止我的代码执行,而是在一个没完没了的循环中继续。如何在break之后停止运行和退出操作?如果没有在页面上找到文本,目标是每60秒继续使用该脚本。如果找到文本,则执行一些操作并退出。
while True:
#operation to scrape data from page
while True:
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
startTime = '11:59:00&
考虑以下OpenMP代码:
#pragma omp target teams distribute parallel for collapse(4) map(tofrom: a) private(i,j,k,l)
for (i = 0; i < SIZE_N; i++) {
for (j = 0; j < SIZE_M; j++) {
for (k = i; k < SIZE_N; k++) {
for (l = 0; l < SIZE_M; l++) {
a[i][j][k][l] += i+2*j+3*k+4*l;
我在pl/sql函数中有一个for循环,类似于:
FOR i IN min..max LOOP
变量i,min,max被声明为NUMERIC
在我的例子中,min和max通常很大,但范围本身很小。
min = 3232236033
max = 3232236286
正如您所看到的,范围大约是256,但是使用这个值,oracle会抛出一个数字溢出错误,并且我继续研究如何使它工作。
我应该如何迭代这些值?
编辑
好的,我有一个工作的答案,使用max/min的循环,但是真的不可能在oracle中遍历大的值吗?
编辑我检索的错误是:
SQL Error: ORA-01426: nadmiar nume
此示例中使用的不变量来自。
不过我很困惑。示例中的代码使用for循环。
我将其转换为while循环,因为我对此有更好的理解,并且添加了断言来测试不变量。
while示例对我来说是完全有意义的,我可以看到在每个断言点上不变量是如何保持的。
但是,在for示例中,断言assert total == sum(A[0:i]) and i >= len(A)失败。
我可以理解为什么i值可能会这样,因为i不再在4上递增。但我不知道为什么求和的最后断言必须是assert total == sum(A[0:i + 1])。
这似乎是一件非常微妙的事情,围绕着“一个错误”。对于assert total =
我已经在do while循环中重写了这段代码,但是我如何让除法部分返回/接受三位小数,例如,如果我得到1/4,我应该能够输入0.25,如果我得到1/7,我应该能够得到0.14。
import java.util.*;
public class HelloWorld
{
public static void main (String[] args)
{
Scanner keyboard=new Scanner(System.in);
Random quest=new Random();
int module,range,number,count,quest1,q
在用Perl进行编程时,是否使用Do-但被认为是最佳实践(AKA专业编码标准)?
my $continue = 1;
do {
# When time to break the loop.
$continue = 0;
} while ($continue);
或者应该使用一种替代方法,比如.
MYLOOP: while(1){
# When time to break the loop.
last MYLOOP;
}
我需要帮助来证明迭代程序的正确性:
def term_ex_2(x,y):
''' Pre: x and y are natural numbers '''
a = x
b = y
while a >= 0 or b >= 0:
if a > 0:
a -= 1
else:
b -= 1
return x * y
我知道我需要以某种方式找到一个循环不变量,并通过对循环进行归纳来证明它。问题是这里的if/else语句把我搞糊涂了。
在此之后,我还必须证明程序是否终止
使用以下方法:
func isosceles(triangleSides: Int)
{
var y = 0
for _ in 1...triangleSides {
y = y + 1
var stringBuilder = String()
for _ in 1...y
{
stringBuilder += "*"
}
println(stringBuilder)
}
}
is
在这个特定的项目中:
from __future__ import print_function
import random
# Make a list of words
words = ['apple','banana','orange','coconut','strawberry','lime','grapefruit','lemon','kumquat',
'blueberry','melon']
while