我想让for循环从头开始执行代码。但是,我的开始状态与结束状态相同。有什么方法可以在循环之前执行代码而无需编写代码?
for(int i = queue1->front;
i%queue1->size != queue1->front;
i++) {
//some code
}
在代码中,我使用的是圆形数组,我想使用循环将其打印出来。
答案 0 :(得分:3)
除了使用do-while-loop之外,您还可以在任何情况下使用标志进入循环:
from flask import Flask, request, url_for
from flask import redirect, jsonify
from db.db import BlogPost
from db import db
application = Flask(__name__)
db.init()
@application.route('/')
def apiRedirect():
return redirect('/blogs')
@application.route('/blogs')
def getBlogs():
blogs = BlogPost.objects()
blogsarr = []
for blog in blogs:
blogsarr.append(blog.to_mongo())
return jsonify(blogsarr)
@application.route('/blogs/create', methods=['GET','POST'])
def createBlog():
if request.method == 'POST':
author = request.form['author']
date = request.form['date']
content = request.form['content']
post = BlogPost(author=author, date=date,content=content)
post.save()
return "Posted"
return jsonify(post.author, post.date, post.content)
如果愿意,您甚至可以将其直接集成到for循环头中:
int first = 1;
for (int i = queue1->front; i%queue1->size != queue1->front || first; i++){
first = 0;
//some code
}
答案 1 :(得分:2)
您可以简单地使用do while循环。您希望循环执行任意次数的情况,但至少有一种是这种循环的典型用例。
int i = queue1->front;
do {
//some code
i++
} while(i%queue1->size != queue1->front)
另一个选择是确保第一次在for循环中的条件为true。有不同的方法可以做到这一点。一种方法是使用标志。
int flag = 1;
for( ... ; ... || flag; ... ) {
flag = 0;
...
}
您可以使用goto
。我不推荐它。
goto label;
int i=queue1->front; // Init will be skipped
// using this method
for(...) {
label:
...
}
如果不想重复编写代码的原因只是为了避免重复的代码,则可以将其重构为一个函数。当然,您必须两次编写函数名称,但这可能还是一个改进。
myFunction();
for(...) {
myFunction();
}