System.out.println ("starting loop:");
for (int n = 0; n < 7; ++n)
{
System.out.println ("in loop: " + n);
if (n == 2) {
continue;
}
System.out.println (" survived first guard");
if (n == 4) {
break;
}
System.out.println (" survived second guard");
// continue at head of loop
}
// break out of loop
System.out.println ("end of loop or exit via break");
Это приведет к следующему выходу:
starting loop:
in loop: 0
survived first guard
survived second guard
in loop: 1
survived first guard
survived second guard
in loop: 2
in loop: 3
survived first guard
survived second guard
in loop: 4
survived first guard
end of loop or exit via break
Вы можете пометить блок, а не только цикл for, а затем разбить / продолжить от вложенного блока до внешнего. В некоторых случаях это может быть полезно, но в целом вы попытаетесь избежать такого кода, за исключением того, что логика программы намного лучше понять, чем в следующем примере:
first:
for (int i = 0; i < 4; ++i)
{
second:
for (int j = 0; j < 4; ++j)
{
third:
for (int k = 0; k < 4; ++k)
{
System.out.println ("inner start: i+j+k " + (i + j + k));
if (i + j + k == 5)
continue third;
if (i + j + k == 7)
continue second;
if (i + j + k == 8)
break second;
if (i + j + k == 9)
break first;
System.out.println ("inner stop: i+j+k " + (i + j + k));
}
}
}
Поскольку это возможно , это не значит, что вы должны использовать его.
Если вы хотите запутать свой код забавным способом, вы не выбираете значащее имя, а http: и следуете ему с комментарием, который выглядит чуждо, как веб-адрес в исходном коде :
http://stackoverflow.com/questions/462373
for (int i = 0; i < 4; ++i)
{
if (i == 2)
break http;
Я думаю, это от Джошуа Блоха quizzle. :)
делает следующее, чтобы захватить работу параметров запроса:
router.get(':facebookUserId?' ... (req, res) => {
...
const facebookUserId = req.query.facebookUserId;
...
});
Похоже, вы пытаетесь получить строку запроса, а не параметр из маршрута получения конечной точки.
В вашем users.js получите строку запроса из req.query
// as your path is the same with the endpoint prefix api/users, use '/'
router.get('/', jsonParser, async (req, res) => {
// get user by facebookUserId
const users = db.collection('users');
// get the query string from req.query
const facebookUserId = req.query.facebookUserId;
const query = {
facebookUserId: facebookUserId,
};
const user = await findOne(users, query);
res.json(user);
});
module.exports = router;
Если вы хотите использовать вместо /:facebookUserId
параметр, как в исходном коде, вы Вам нужно будет изменить вызов конечной точки, чтобы он был таким http://xxx/api/users/10213594301678639
В вашем маршруте вы ожидаете, что параметр facebookUserId
будет параметром маршрута (например, / api / users / 10213594301678639), но в приведенном выше примере вы вызываете маршрут с параметром запроса (/ api / пользователи? facebookUserId = 10213594301678639)