唐伯虎 发表于 2021-7-1 21:17:43

暑假C计划.01

  July 1st :关于if语句的使用及格式
int main()
{
int age = 10 ;
if (age < 18)
   printf("未成年\n");
else
   printf("成年\n");
return 0;
}
  这是一段引用了if语句的基础代码,判断age是否满足if语句的条件。
int main()
{
int age = 66;
if(age < 18)
printf("未成年\n");
else
    {
      if( age >= 18 && age < 26 )
      printf("青年\n");
      if( age >= 26 && age < 50 )
      printf("中年\n");
      if( age >= 50 && age < 80 )
      printf("老年\n");
      else
      printf("老不死\n");
   }

return 0 ;
}  这也是一段引用了if语句的基础代码判断age的条件是否满足第if语句的条件并对号入座,此处我使用了大括号包括了出未成年条件以外的条件,我认为这样写更加简洁易懂(想要执行多条语句必须用大括号括起来)。作为小白,很多时候会把&&忽略从而产生bug,&&称为逻辑与 ,判断条件的真假,只有两个条件都为真才可以被引用,如果把if (age>=18 && age<28)打成if (28>age>=18)则会使代码被忽略。
int main()
{
int a = 1;
int b = 2;
if(a == 0);
   if(b == 2);
   printf("hehe\n");
   else
   printf("haha\n");
return 0 ;
}  这是一段错误的代码,它不会打印出hehe或haha,因为第一个if语句在判断a的时候没有匹配成功,所以不会再继续进行第二个if判断
int main()
{
int a = 1 ;
int b = 2;
if(a == 0)
{
   if(b == 2)
   printf("hehe\n");
   }
else
printf("haha\n");
return 0;
}  else和离他最近的if进行匹配,如图所示如果最近的被括住了,就匹配第二近的。第一个if对了直接走第二个第二个错了便直接结束,不会继续else因为有大括号,else是和第一个if匹配的,如果第一个对了第二个也对了打印出结果为hehe。如果第一个错了,直接跳转到else结果为haha,因为第二个if被括了所以不会继续下去。
//错误示范
int main()
{
int A = 1 ;
if ( A = 2)
printf ("haha\n");
else
printf ("hehe\n")
return 0;
}  这串代码的结果粗心的话会以为是haha,其实很多时候都会有粗心的时候,少打一个等于号,整串代码的意思就变了带入到程序里会出现不必要的bug,为了避免这种事情的发生,我们可以把判断条件里的常量和变量调换个位置,如if(2 == A)这样便会强制解决了这个问题
//int main()
//{
//int num = 4;
//if(5 == num)//赋值bug倒着写更加靠谱常量放在左边
//{
//printf("呵呵\n");//
//}
//return 0;
//}  很方便
//打印100里的奇数(1)
int main()
{
int i = 1;
while(i<100)
{
    printf("%d\n",i);
    i+=2;
}
return 0;
}//打印100里的奇数(2)
int main()
{
int i = 1 ;
while(i<100)
   {
   if ( i%2 == 1 )
   printf("%d\n",i);
   i++;
   }
return 0 ;
}
  
页: [1]
查看完整版本: 暑假C计划.01