Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Warum wird immer 02 ausgegeben und nicht 1?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.11.2013, 22:51 Uhr
~NicolasKuchen
Gast


Warum wird immer 02 ausgegeben und nicht 1? Die IF Bedingung wird einfach übersprungen und stattdessen i (das ja offensichtlich wirklich 0 zu sein scheint) und 2 ausgegeben


Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <cmath>
#include <iomanip>
#include <fstream>



using namespace std;

double computeP (int i)
{
if (i=0)
{return 1;}
else
{cout<<i;
return 2;}

}

int main ()
{
cout<<computeP (0);
}



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.11.2013, 07:27 Uhr
Tommix



'Morgen

C++:
if (i=0)


ist eine Zuweisung. Du setzt in der Tat i = 0. Was Du meintest, ein Vergleich, wird in C und C++

C++:
if (i == 0)


notiert. Gelegentlich wird empfohlen besser

C++:
if (0 == i)


zu schreiben. In dem Fall wäre eine Zuweisung nicht möglich und würde zu einem Fehler beim Compilieren führen. Allerdings ist dieses Vorgehen umstritten und wird gelegentlich als Yoda-Code verspottet ("Wenn Null der Wert von i ist, Du Eins ausgeben mußt.").

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: