Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > [C++ Question] For loop Multiple Initialization

Reply
Thread Tools

[C++ Question] For loop Multiple Initialization

 
 
charlie.xia.fdu@gmail.com
Guest
Posts: n/a
 
      11-03-2008
Hi C++ users,

for(int i=0,int j=10 ; i<5&&j<10 ; i++ , j--) {}

example from: http://www.tech-faq.com/iterations.shtml
Is not valid in my eclipse cdt.
Is there multiple initialization in C++? How can we use that?

Thanks!

Charlie
 
Reply With Quote
 
 
 
 
Pawel Dziepak
Guest
Posts: n/a
 
      11-03-2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:
> Hi C++ users,
>
> for(int i=0,int j=10 ; i<5&&j<10 ; i++ , j--) {}
>
> example from: http://www.tech-faq.com/iterations.shtml
> Is not valid in my eclipse cdt.
> Is there multiple initialization in C++? How can we use that?


That way is correct:

for (int i=0, j=10; i<5 && j<10; i++, j--) {}

Unless I'm wrong, there's no way to initialize variables of different
types in that part of for loop.

Pawel Dziepak

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkkPb5AACgkQPFW+cUiIHNo4jQCff0Shc8Rmg8 IbW7OYSDPqVu5g
7dsAoLirnTWj3mIPx2eN9mnZPUNBsYi1
=4L+S
-----END PGP SIGNATURE-----
 
Reply With Quote
 
 
 
 
charlie.xia.fdu@gmail.com
Guest
Posts: n/a
 
      11-03-2008
On Nov 3, 1:39*pm, Pawel Dziepak <(E-Mail Removed)> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> (E-Mail Removed) wrote:
> > Hi C++ users,

>
> > for(int i=0,int j=10 ; i<5&&j<10 ; i++ , j--) {}

>
> > example from:http://www.tech-faq.com/iterations.shtml
> > Is not valid in my eclipse cdt.
> > Is there multiple initialization in C++? How can we use that?

>
> That way is correct:
>
> for (int i=0, j=10; i<5 && j<10; i++, j--) {}
>
> Unless I'm wrong, there's no way to initialize variables of different
> types in that part of for loop.
>
> Pawel Dziepak

it works!
thanks

>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Fedora -http://enigmail.mozdev.org
>
> iEYEARECAAYFAkkPb5AACgkQPFW+cUiIHNo4jQCff0Shc8Rmg8 IbW7OYSDPqVu5g
> 7dsAoLirnTWj3mIPx2eN9mnZPUNBsYi1
> =4L+S
> -----END PGP SIGNATURE-----


 
Reply With Quote
 
James Kanze
Guest
Posts: n/a
 
      11-03-2008
On Nov 3, 10:29*pm, "(E-Mail Removed)" <(E-Mail Removed)>
wrote:

> for(int i=0,int j=10 ; i<5&&j<10 ; i++ , j--) {}


> example from:http://www.tech-faq.com/iterations.shtml
> Is not valid in my eclipse cdt.


It's not valid in C++ either. Just another case of someone who
doesn't know the language trying to write about it.

> Is there multiple initialization in C++?


Sort of. You can only write one declaration statement, but it
can define multiple variables, e.g.:

for ( int i = 0, j = 10 ; ... )

Generally speaking, i'ld avoid it, because it is confusing to
have multiple variables defined in the same declaration. But
there are probably exceptions; I know that some people like:

for ( Container::const_iterator
current = c.begin(), end = c.end() ;
current != end ;
++ current )

I'm not that fond of it, but if you raise it to the level of a
"standard idiom" in your code, I don't think I'd have any real
objections.

--
James Kanze (GABI Software) email:(E-Mail Removed)
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
 
Reply With Quote
 
James Kanze
Guest
Posts: n/a
 
      11-03-2008
Pawel Dziepak wrote:
> (E-Mail Removed) wrote:
> > for(int i=0,int j=10 ; i<5&&j<10 ; i++ , j--) {}


> > example from: http://www.tech-faq.com/iterations.shtml
> > Is not valid in my eclipse cdt.
> > Is there multiple initialization in C++? How can we use that?


> That way is correct:


> for (int i=0, j=10; i<5 && j<10; i++, j--) {}


> Unless I'm wrong, there's no way to initialize variables of
> different types in that part of for loop.


for ( int i = 0 , *p = &i ; ... )

.

Not that I'd like to maintain code which did such things.

--
James Kanze (GABI Software) email:(E-Mail Removed)
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
 
Reply With Quote
 
charlie.xia.fdu@gmail.com
Guest
Posts: n/a
 
      11-06-2008
But actually I want these variables only in the scope of for loop.
Keep the initialization and increment in the for statement is the only
neat way I can think of.
Isn't it?


On Nov 4, 2:20*am, Pete Becker <(E-Mail Removed)> wrote:
> On 2008-11-03 23:03:16 -0500, (E-Mail Removed) (blargg) said:
>
>
>
> > Pawel Dziepak wrote:
> >> (E-Mail Removed) wrote:
> >>> for(int i=0,int j=10 ; i<5&&j<10 ; i++ , j--) {}

>
> >>> example from:http://www.tech-faq.com/iterations.shtml
> >>> Is not valid in my eclipse cdt.
> >>> Is there multiple initialization in C++? How can we use that?

>
> >> That way is correct:

>
> >> for (int i=0, j=10; i<5 && j<10; i++, j--) {}

>
> >> Unless I'm wrong, there's no way to initialize variables of different
> >> types in that part of for loop.

>
> > I'll probably regret this, but I believe you can:

>
> > * * double d;
> > * * int* p;
> > * * for ( char c = (d = 1.234, p = new int, 'X'); ...

>
> Or, less cryptically,
>
> double d;
> int *p;
> char c;
> for (c = 'X', d = 1.234, p = new int; ...
>
> Now, technically, that's not initialization, but it may well be what
> was actually meant.
>
> --
> * Pete
> Roundhouse Consulting, Ltd. (www.versatilecoding.com) Author of "The
> Standard C++ Library Extensions: a Tutorial and Reference
> (www.petebecker.com/tr1book)


 
Reply With Quote
 
charlie
Guest
Posts: n/a
 
      11-14-2008
On Nov 7, 1:08*am, (E-Mail Removed) (blargg) wrote:
> (E-Mail Removed) wrote:
> > On Nov 4, 2:20 am, Pete Becker <(E-Mail Removed)> wrote:
> > > On 2008-11-03 23:03:16 -0500, (E-Mail Removed) (blargg) said:
> > > > Pawel Dziepak wrote:
> > > >> (E-Mail Removed) wrote:
> > > >>> for(int i=0,int j=10 ; i<5&&j<10 ; i++ , j--) {}

>
> > > >>> example from:http://www.tech-faq.com/iterations.shtml
> > > >>> Is not valid in my eclipse cdt.
> > > >>> Is there multiple initialization in C++? How can we use that?

>
> > > >> That way is correct:

>
> > > >> for (int i=0, j=10; i<5 && j<10; i++, j--) {}

>
> > > >> Unless I'm wrong, there's no way to initialize variables of different
> > > >> types in that part of for loop.

>
> > > > I'll probably regret this, but I believe you can:

>
> > > > * * double d;
> > > > * * int* p;
> > > > * * for ( char c = (d = 1.234, p = new int, 'X'); ...

>
> > > Or, less cryptically,

>
> > > double d;
> > > int *p;
> > > char c;
> > > for (c = 'X', d = 1.234, p = new int; ...

>
> > > Now, technically, that's not initialization, but it may well be what
> > > was actually meant.

>
> > But actually I want these variables only in the scope of for loop.
> > Keep the initialization and increment in the for statement is the only
> > neat way I can think of.
> > Isn't it?

>
> The for loop is for common loops that have a single variable that is
> initialized, tested, and advanced. If it were made to handle every
> possible loop, it would lose its usefulness. In fact, such a more general
> loop construct already exists as a combination of a compound statement
> ({}) with a while or do-while loop in it. What do you gain by trying to
> jam complicated things into a for loop anyway?
>
> Also, please don't top-post, and don't quote signatures (see
> <http://www.netmeister.org/news/learn2quote.html>).


Good to know. Thanks all.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Triple nested loop python (While loop insde of for loop inside ofwhile loop) Isaac Won Python 9 03-04-2013 10:08 AM
array initialization in initialization list. toton C++ 5 09-28-2006 05:13 PM
Initialization of non-integral type in initialization list anongroupaccount@googlemail.com C++ 6 12-11-2005 09:51 PM
Initialization via ctor vs. initialization via assignment Matthias Kaeppler C++ 2 07-18-2005 04:25 PM
Default Initialization Vs. Value Initialization JKop C++ 10 09-22-2004 07:26 PM



Advertisments