C中使用的括号及其用途
我很抱歉,如果以前曾经问过,但我是C的初学者,我想知道是否有人可以帮助解释下面代码中的()括号的使用,我从在线教程中获取它并运行它很好,但有一部分我不明白.
#include <stdio.h> #include <stdlib.h> int main() { int age; printf("Please enter the age"); scanf("%d",&age); if (age > 18 /*condition */ ) { printf("You may enter the club"); if (age < 21) { printf("The age is greater than 18 but less than 21"); ????????其他 } else if (age == 18) { printf("The age is equal to 18"); } else { printf("The age is not greater than 18"); } return 0; } 根据我收集的内容,圆括号用于包含if语句的条件,大括号用于表示遵循该条件的操作.除了以粗体显示的嵌套else条件外,else语句后跟一个包含print命令的圆括号. 任何人都可以解释为什么会这样吗? 解决方法
圆括号()(以及大括号{})可能出现在几个不同的上下文中,服务于不同的角色.
如果需要将多个语句组合成一个复合语句以作为if的true或false分支,则大多数情况下需要使用if中的curly括号.例如,在你的情况下,if(age< 21)的每个分支只是一个语句,这意味着它的分支中的大括号不是必需的.如果是,你可以写出来 if (age < 21) printf("The age is greater than 18 but less than 21"); else printf("The age is greater than 18 and greater than 21"); 同时if(age> 18)的真分支包含多个语句,这就是为什么你需要大括号的原因. 同时,环绕if条件的圆括号只是if语句的一个语法元素 – 语法需要一对圆括号如果条件,就像它需要圆括号一样,同时,函数调用和其他语法结构. 但是圆括号也可以用于完全不同的角色:在表达式中,其主要目的是将运算符与其操作数分组,如(2 2)*(5 – 3).但是,在表达式中,您可以自由使用冗余括号,例如你可以写(((2)))(3)而不是2 3.或者你可以在整个表达式周围添加多余的括号,例如(((2 3)))而不是(2 3)等等. 这正是您在示例中观察到的内容.您的 printf("The age is greater than 18 and greater than 21"); 只是一个表达式语句,即由单个表达式组成的语句.该表达式是对printf的调用.如果您愿意,可以将该呼叫附加到任意数量的冗余圆括号中 (((printf("The age is greater than 18 and greater than 21")))); 没有改变它的含义. 这两个因素的结合:你不需要围绕那个printf的事实,以及你可以根据需要在printf周围放置尽可能多的()这一事实会产生一种错觉,如果是printf的话一对{}以某种方式被一对()取代.实际上,这是两个完全不相关的行为. 无论如何,它只是一种语法上的好奇,而不是具有任何实际价值的东西.如何在教程的代码中发生 – 任何人的猜测. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |