Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2009, 10:18   #1
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
Вопрос Оператор continue

Скажите пожалуйста! Почему, в данной программе у меня не работает оператор Continue.Программа должна умножать введённые числа игнорируя нули. Вот исходник:

Код:
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
  setlocale(0,"");
int i = 0, value = 0, product = 1;
for(i = 1; i<=10; i++)
{
	cout<<"Введите целое число: ";
	cin>>value;
	if(value == 1)
		continue;
	product*=value;
}
	cout<<"Произведение (игнорируя нули): "<<product
		<<endl;

cin.get();
cin.ignore();
return 0;
}
Golovastik вне форума Ответить с цитированием
Старый 19.07.2009, 16:12   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

а по коду видно что вы игнорируете единицы

Код:
if(value == 1)
надо

Код:
if(value == 0)
counter вне форума Ответить с цитированием
Старый 19.07.2009, 16:24   #3
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Выдаёт неверный результат при вводе 10 чисел.

Код:
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
  setlocale(0,"");
int i = 0, value = 0, product = 1;
for(i = 1; i<=10; i++)
{
	cout<<"Введите целое число: ";
	cin>>value;
	if(value == 0)
	{
		continue;
	product*=value;
	}
}
	cout<<"Произведение (игнорируя нули): "<<product
		<<endl;

cin.get();
cin.ignore();
return 0;
}

Последний раз редактировалось Golovastik; 19.07.2009 в 16:31.
Golovastik вне форума Ответить с цитированием
Старый 19.07.2009, 16:33   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

а вам надо чтоб при вводе нуля выдало результат?

оператор continue переходит к следуещей итерации цикла, то есть цикл пройдет до конца считая произведение но если встретится 0, то его не будет учитывать...

Код:
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
  setlocale(0,"");
int i = 0, value = 0, product = 1;
for(i = 1; i<=10; i++)
{
	cout<<"Введите целое число: ";
	cin>>value;
	if(value == 0)
	{
		continue;
           }
	product*=value;
	
}
	cout<<"Произведение (игнорируя нули): "<<product
		<<endl;

cin.get();
cin.ignore();
return 0;
}
counter вне форума Ответить с цитированием
Старый 19.07.2009, 16:37   #5
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Всё,спасибо,вроде работает.
Golovastik вне форума Ответить с цитированием
Старый 19.07.2009, 16:39   #6
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

может лучше вообще без continue?
Цитата:
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
setlocale(0,"");
int i = 0, value = 0, product = 1;
for(i = 1; i<=10; i++)
{
cout<<"Введите целое число: ";
cin>>value;
if(value)
{
product*=value;
}
}
cout<<"Произведение (игнорируя нули): "<<product
<<endl;

cin.get();
cin.ignore();
return 0;
}
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 19.07.2009, 16:44   #7
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
может лучше вообще без continue?
оно то можно!
можно еще и единички не считать, при умножении они роли не играют

Код:
if(value==0 || value==1)
counter вне форума Ответить с цитированием
Старый 19.07.2009, 17:31   #8
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Тоесть написав вот это условие:

Код:
if(value)
{
product*=value;
}
}
Можно сказать, если введено что -то в value,тогда значение product умножит на то,что я ввёл в валюе, ели ничего не ввёл(тоесть ввёл 0), тогда и не умножать на это ничего. Правильно ли я написал?

Последний раз редактировалось Golovastik; 19.07.2009 в 17:34.
Golovastik вне форума Ответить с цитированием
Старый 19.07.2009, 22:55   #9
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Golovastik ты в курсе, как работает условный оператор? false - если передан 0, true - во всех остальных случаях.

Цитата:
ели ничего не ввёл(тоесть ввёл 0)
это не эквивалентно. если ввел 0, то ты ввел 0, и никак иначе

пс. запишись на курсы грамотной речи чтоль, лично мне приходится читать твои посты по нескольку раз, чтобы понять, что же ты хочешь.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 20.07.2009, 13:42   #10
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Хорошо,просто я писал на автопилоте. Ну расшифровка моя правильная?
Golovastik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналог continue в VBA motorway Microsoft Office Excel 10 05.06.2015 00:47
continue Neymexa Общие вопросы .NET 8 30.04.2009 13:35
Drag&Drop-continue. Icons MAcK Общие вопросы .NET 2 16.09.2008 12:59
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10
bass.dll - ошибка - Use the step or run to continue. vitalik007 Общие вопросы Delphi 1 20.08.2007 19:59