Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Introduction to C Programming - Branching and Looping

software


Introduction to C Programming Branching and Looping

If statements and while loops in C both rely on the idea of Boolean expressions, as they do in Pascal. In C, however, there is no Boolean type: You use plain integers instead. The integer value 0 in C is false, while any other integer value is true.



Here is a simple translation from Pascal to C. First, the Pascal code:



if (x=y) and (j>k) then
z:=1
else
q 10;


The C translation looks very similar, but there are some important differences, which we will discuss next.



if ((x==y) && (j>k))
z=1;
else
q=10;


Notice that = in Pascal became == in C. This is a very import 15515q1619p ant difference, because C will accept a single = when you compile, but will behave differently when you run the program. The and in Pascal becomes && in C. Also note that z=1; in C has a semicolon, that C drops the then, and that the Boolean expression must be completely surrounded by parentheses.

The following chart shows the translation of all boolean operators from Pascal to C:

Pascal

C

<

<

>

>

<=

<=

>=

>=

<>

and

&&

or

not

The == sign is a problem because every now and then you may forget and type just =. Because integers replace Booleans, the following is legal in C:



void main()




if a is anything other than 0, the code that blah blah blah represents gets executed. Suppose you take the following Pascal statement:



if a=b then


and incorrectly translate it to C as:



if (a=b) /* it SHOULD be "if (a==b)" */


In C, this statement means "Assign b to a, and then test a for its Boolean value." So if a becomes 0, the if statement is false; otherwise, it is true. The value of a changes as well. This is not the intended behavior (although this feature is useful when used correctly), so be careful with your = and == conversions.

While statements are just as eay to translate. For example, the following Pascal code:



while a < b do
begin
blah blah blah
end


in C becomes:



while (a < b)



C also provides a "do-while" structure to replace Pascal's "repeat-until," as shown below:



do

while (a < b);


The for loop in C is somewhat different from a Pascal for loop, because the C version is simply a shorthand way of expressing a while statement. For example, suppose you have the following code in C:



x=1;
while (x<10)



You can convert this into a for loop as follows:



for(x=1; x<10; x++)



Note that the while loop contains an initialization step (x=1 ), a test step (x<10), and an increment step (x++ ). The for loop lets you put all three parts onto one line, but you can put anything into those three parts. For example, suppose you have the following loop:



a=1;
b=6;
while (a < b)



You can place this into a for statement as well:



for (a=1,b=6; a < b; a++,printf("%d\n",a));


It is confusing, but it is possible. The comma operator lets you separate several different statements in the initialization and increment sections of the for loop (but not in the test section). Many C programmers like to pack a lot of information into a single line of C code. I think it makes the code harder to understand, so I break it up.

C Errors to avoid
  1. Putting = when you mean == in an if or while statement.
  2. Accidentally putting a ; at the end of a for loop or if statement, so that the statement has no effect. For example,


for (x=1; x<10; x++);
printf("%d\n",x);


only prints out one value because of the semicolon after the for statement.


Document Info


Accesari: 1100
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )