计 算 ele语句 机 程 序 语句格式:if(表达式)语句1else语句2 设 计·表达式必须位于括号内,一般为关系或逻辑表达式 基 础·先计算表达式值,若为真则执行语句1,否则执行 语句2 ·语句1与语句2可以为复合语句 语句1与语句2只能有一个被执行 如果仅仅用于确定某条语句是否执行,else分支可 以省略 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 7 计 算 机 程 序 设 计 基 础 if-else 语句 • 语句格式:if(表达式) 语句1 else 语句2 • 表达式必须位于括号内,一般为关系或逻辑表达式 • 先计算表达式值,若为真则执行语句1,否则执行 语句2 • 语句1与语句2可以为复合语句 • 语句1与语句2只能有一个被执行 • 如果仅仅用于确定某条语句是否执行,else分支可 以省略
计 算 ele语句示例一 机 程 序 输入一个字符,判断它是否为0~9之间的数字 设 include <stdio.h> 计 基 nt main0 因:字符以ASC川码值存储 础 且数字的ASC码值4857 printfInput a character:"):故:比较ASC码值 char c c=getchar if(c>=48&&c<=57) printf"It is a number. I); else rintf(No, it is not a number. In) return 0 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 8 计 算 机 程 序 设 计 基 础 if-else 语句示例一 • 输入一个字符,判断它是否为0~9之间的数字 #include <stdio.h> int main() { char c; printf(“Input a character: ”); c = getchar(); if(c >= 48 && c <= 57) printf(“It is a number.\n”); else printf(“No, it is not a number.\n”); return 0; } 因:字符以ASCII码值存储 且数字的ASCII码值48~57 故:比较ASCII码值
计 算 ele语句示例二 机 程 序 输入一个整数,输出其绝对值 设 include <stdio.h> 计 基 int main 真 础 出口 int n, abs, 入口条件假 printf "Enter integer: ) 单分支结构 scanf"%od",&n) abs =ns if(abs <0) abs = -abss printf" Original integer: %d, absolute value: %dn",n, abs); return 0 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 9 计 算 机 程 序 设 计 基 础 if-else 语句示例二 • 输入一个整数,输出其绝对值 #include <stdio.h> int main() { int n, abs; printf(“Enter integer: ”); scanf(“%d”, &n); abs = n; if(abs < 0) abs = –abs; printf(“Original integer: %d, absolute value: %d\n”, n, abs); return 0; } 入口 单分支结构 真 假 出口 A 条件
计 算 else if-else语句 机 程 序·语句格式 设 计 近f(表达式1)语句1 else if(表达式2)语句2…else语句n 基 础入口 表达式假 复杂分支结构 真 假 <表达式 真 假 语句1语句2 语句n 出口 清华大学计算中心 http://learn.tsinghua.edu.cn 10
清华大学计算中心 http://learn.tsinghua.edu.cn 10 计 算 机 程 序 设 计 基 础 if-else if-else 语句 • 语句格式 – if(表达式1) 语句1 else if(表达式2) 语句2 … else 语句n 入 口 复杂分支结构 真 假 出 口 真 假 假 语 句1 表达式1 表达式2 语 句2 ... 语 句n
计 算 else if-else示例 机 程 序 ·根据百分制成绩给出优秀、通过或不通过成绩 设 #include <stdio.h> 计 基 Int main(0 础 float score. printf(Input score: ) scanf( %of &score); if(score >=85 && score <=100) printf("Excellent. V); else if(score >=60 &&e score <85) printf("Pass. n); else if(score >=0 & score 60)printf( No pass m); else printf("Error score. n); return 0 清华大学计算中心 http://learn.tsinghua.edu.cn 11
清华大学计算中心 http://learn.tsinghua.edu.cn 11 计 算 机 程 序 设 计 基 础 if-else if-else 示例 • 根据百分制成绩给出优秀、通过或不通过成绩 #include <stdio.h> int main() { float score; printf(“Input score: “); scanf(“%f“, &score); if(score >= 85 && score <= 100) printf(“Excellent.\n“); else if(score >= 60 && score < 85) printf(“Pass.\n“); else if(score >= 0 && score < 60) printf(“No pass.\n“); else printf(“Error score.\n“); return 0; }