С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/64: Рейтинг темы: голосов - 64, средняя оценка - 4.70
1 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 21
1

Что означает for(;;)

24.02.2015, 15:57. Показов 12835. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
в это проге
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
 int mass1[4],mass2[4], inp;
 
void zadum()
{
    srand(time(0));
    mass1[0] = rand()%9 + 1;
    for (int I = 1; I <= 3; I++)
        mass1[I] = rand()%10;
}
void razb()
{
    int del = 10;
    for(int i = 3; i  > -1; i--)
    { 
        mass2[i] = inp % 10;
        inp /= 10;
    }
 
}
int b()
{
    int res = 0;
    for (int I = 0; I < 4; I++)
        if (mass1[I] == mass2[I])
            res++;
    return res;
}
int c()
{
    int res = 0;
    for (int I = 0; I < 4; I++)
        for (int J = 0; J < 4; J++)
            if (mass1[I] == mass2[J] && I != J)
                res++;
    return res;
}
void game()
{
    zadum();
    cout << "Число  Б К\n"
         << "----------\n";
    for(;;)
    {
        cin >> inp;
        razb();
        cout << "       " << b() << " " << c() << "\n";
        if (b() == 4)
        {
            cout << "Вы выйграли!!!\n";
            break;
        }
    }
}
int main(int argc, char* argv[])
{
    setlocale(0, "Russian");
    char M;
    cout << "Здравствуйте, это игра 'Быки и коровы'.\n"
         << "Компьютер задумал 4-хзначное число. Ваша задача - отгадать его посредством ввода чисел.\n"
         << "Если цифра совпадает, но стоит на другом месте - это корова, если стоит на том же месте - бык.\n\n";
    for (;;)
    {
        game();
        cout << "Ещё раз? (Д/Н)\n"; cin >> M;
        if (M == 'н' || M == 'Н')
        break;
    }
    system("pause");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2015, 15:57
Ответы с готовыми решениями:

Поясните пожалуйста что означает двоеточие и то что идет после него
В 4 строчке после параметра в скобочках нету &quot;;&quot; или же тела функции, что не сходится с моим...

скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что?
скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? //анализируем все...

Что означает запись в скобках и что возвращает return
Всем привет! Начал читать книгу BecomeAnXcoder и тут появился вопрос. В пример приведен такой код...

Что такое #, include, что это означает
______

8
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
24.02.2015, 15:59 2
Цитата Сообщение от сщьфтср Посмотреть сообщение
в это проге
в любой проге это бесконечный цикл. В данной проге это основной цикл игры.
1
Fallenworld
24.02.2015, 16:42
  #3

Не по теме:

Кстати, по поводу этой игры. Когда комп задумывает число - все просто. А вот кто могет реализовать, когда игрок задумал число, а компьютер штоб отгадывал...

0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
24.02.2015, 16:53 4
Fallenworld,

Не по теме:

и в чем сложность?

0
zss
24.02.2015, 17:52
  #5

Не по теме:

Цитата Сообщение от Kerry_Jr Посмотреть сообщение
и в чем сложность
Игрок может взять и перезадумать.

0
_Ivana
24.02.2015, 18:28
  #6

Не по теме:

Знаю вариант этой игры - называется Бангладеш. Делающему первый ход очень трудно выиграть.

0
Модератор
Эксперт С++
13727 / 10923 / 6479
Регистрация: 18.12.2011
Сообщений: 29,155
24.02.2015, 18:50 7
По существу вопроса: вместо for( ; ; ) будет понятнее запись
while(true)
1
_Ivana
24.02.2015, 21:44
  #8

Не по теме:

Как же, помню знатный холивар на Электрониксе по поводу того, что while(1) не по стандарту и некоторые компиляторы выдают на такое варнинги, а for( ; ; ) это халяльно и в Кернигане-Риччи так написано :)

0
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
24.02.2015, 22:29 9
Цитата Сообщение от _Ivana Посмотреть сообщение
Как же, помню знатный холивар на Электрониксе по поводу того, что while(1) не по стандарту и некоторые компиляторы выдают на такое варнинги, а for( ; ; ) это халяльно и в Кернигане-Риччи так написано
По интернетам ходят какие то странные слухи:

опровержение теоремы ферма:
http://edunow.su/site/content/... ferma-i-ub

Я пробовал повторить эксперимент,
но не мне удалось добиться такого сбойного поведения.

Я не поленился, и читанул священное писание по этому поводу.
И не нашел там никаких подтверждений касательно того,
что якобы стандарт C++ объявляет «неопределённым действием» бесконечный цикл без изменения внешнего состояния.

Может быть когда то в прошлом так и было.
Я то читаю относительно свежий документ стандарта:

Document Number: N4296
Date: 2014-11-19
Revises: N4140
Reply to: Richard Smith
Google Inc
cxxeditor@gmail.com
---------------------------------------------------------------------------

А с другой стороны, число логически, если рассуждать с точки зрения здравого смысла:
было бы очень странно, если бы нельзя было писать for( ;; ),
учитывая что язык эту фичу специально поддерживает для удобства пользователей.
А не для того, что бы запрещать ею пользоваться.

К тому же в священном писании об этом сказано так:

6.5.3 The for statement [stmt.for]
2 Either or both of the condition and the expression can be omitted. A missing condition makes the implied
while clause equivalent to while(true).
Стандарт объявляет for( ;; ) и while(true) эквивалентами.

Поэтому, я считаю что писать можно и так, и сяк,
и это будет вполне себе по стандарту.

А по поводу while(1), в стандарте сказано:

6.5.1 The while statement [stmt.while]
1 In the while statement the substatement is executed repeatedly until the value of the condition (6.4) becomes
false. The test takes place before each execution of the substatement.
2 When the condition of a while statement is a declaration, the scope of the variable that is declared extends
from its point of declaration (3.3.2) to the end of the while statement. A while statement of the form
while (T t = x) statement
is equivalent to
label:
{ // start of condition scope
T t = x;
if (t) {
statement
goto label;
}
} // end of condition scope
The variable created in a condition is destroyed and created with each iteration of the loop. [ Example:
struct A {
int val;
A(int i) : val(i) { }
~A() { }
operator bool() { return val != 0; }
};
int i = 1;
while (A a = i) {
// ...
i = 0;
}
Таким образом, в качестве условия может выступать все что угодно,
лишь бы оно умело приводиться к типу bool.

Поскольку циферка 1 может приводится к bool,
то следовательно это вполне себе законная конструкция.
0
24.02.2015, 22:29
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2015, 22:29
Помогаю со студенческими работами здесь

Что означает (//) и (#)?
Что означает? Для чего нужны? Двойной символ «прямой слэш» (//) Одиночный символ «решетка» (#)...

Что означает %d
#include &lt;stdio.h&gt; int main() { FILE *f; char Name =...

Что означает while (1) {. . . }
что означает while(1){ . . .}

Что означает if(!p) ?
То есть вот этот восклицательный знак перед переменной. Я использовал только записи вроде ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru