עבור לתוכן

C While

Featured Replies

פורסם

נתונה התוכנית הבאה:

int main()

|}

bool F = false

While(!F)

}

printf("1

(

{

{

הסוגרים התפקשושו לי , אבל עדין ניתן להבין.

מה בעצם עושה ה! ??

פורסם

סימן קריאה זה אופרטור NOT.

הוא ימיר ערך שהוא FALSE (שזה 0) ל TRUE (ל 1) כנ"ל ההיפך.

יש לציין שבשפת C, הערך FALSE נחשב ל 0, ו TRUE מיוצג ע"י כל מספר ששונה מ 0 (לאו דווקא 1) כך שאם תעשה ! על 1234 זה גם ימיר אותו ל 0.

אין לי מושג איפה הרצת את הקוד הזה, עד כמה שאני זוכר ב C אין לך מילים שמורות של TRUE ו FALSE, וגם לא משתנה BOOL. (אולי קימפלת כ C++)

אתה יכול להשתמש ב DEFINE ולהגדיר שם את הקבועים האלה ש TRUE יהיה 1 ו FALSE 0 (לא מומלץ להגדיר TRUE כי כל מספר ששונה מ 0 נחשב ל TRUE).

להבא, שתדע, כדי להציג בפורום קוד בצורה נורמלית, יש לך במצב עריכה של ההודעה סימן # שעוטף את הקוד בתגית CODE ואנשים יוכלו לקרוא כמו שצריך.

פורסם
  • מחבר

הסבר יפה .

איך זה משפיע על While ? האם הקוד יהיה לולאה אינסופית?

פורסם

אכן הלולאה תהיה אינסופית, מכיוון שהאופרטור ! אינו משנה את הערך של המשתנה עצמו שהוא מופעל עליו.

פורסם
  • מחבר

אין בC משתנה bool ?

אז מה יש ?

boolean ?

פורסם

אתה יכול לנסות Bool_, יכול להיות שהוא מוגדר באחד מקבצי HEADER של C, אבל עד כמה שאני יודע, אין טיפוס כזה ב ANSI C (תקן סטנדרטי של C) ככה שיכול להיות שתכתוב משהו וקומפיילר אחר לא יזהה את זה.

שוב, מכיוון שבשפה זו FALSE נחשב ל 0 ו TRUE לכל דבר אחר, אתה יכול להשתמש בכל טיפוס נתונים ולהתייחס לערך שבו כערך בוליאני.

פורסם

אין בC משתנה bool ?

אז מה יש ?

boolean ?

לא. ב-C אין כזה דבר בכלל בוליאן - יש רק int.

ב-++C יש bool שהוא שקול לחלוטין ל-int (תכל'ס זה typedef) ומוגדרים הערכים False ו-True ששווים ל-0 ול-1 בהתאמה. היום רוב האנשים עובדים עם קומפיילרים של ++C (מעט מאוד עם קומפיילרים של C בלבד) ולכן הם מזהים את bool ו-True/False.

פורסם
  • מחבר

איך אני יכול להפעיל טיפוס כזה דרך Typedef?

כך?

Typedef 0 false

typedef 1 true

פורסם

typedef מגדיר טיפוסים, לא ערכים.

בשביל להגדיר bool:


typedef int bool;

ובשביל להגדיר TRUE/FALSE:

#define FALSE 0
#define TRUE 1

או לחילופין (פחות נהוג ב-C):

const int FALSE = 0;
const int TRUE = 1;

פורסם
  • מחבר

אם אני אוסיף את הDefines ל Stdio.h זה יפעל תמיד?

פורסם

כן, אבל זה לא נהוג לשנות או להוסיף דברים לקבצי HEADER שקיימים כבר בשפה. תחשוב גם מה קורה אם תנסה לקמפל את התכנית שלך במחשב אחר / קומפיילר אחר, שבו יש את ה HEADER המקורי.

תעשה לך קובץ HEADER משלך, שבו תגדיר את הקבועים שלך, ותעשה לו INCLUDE.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים