分支与循环
使用if的一写小问题
#include<stdio.h>//分支与循环
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else//else只会与最紧未匹配的if匹配与 是否对其哪个if无关
printf("haha\n");
return 0;
}//不会输出haha
第一个if为假时,就会直接return 0;
想输出haha,则做以下修改:
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
}
else
printf("haha\n");
return 0;//这就可以输出haha了
一些初学者的小问题:
//代码1
if (condition)
{
return x;
}
return y;//注意:为真,则只返回x,不会反回y;为假,则返回y
这样就可以了:
//代码2
if (condition)
{
return x;
}
else
{
return y;
}//这个好理解吧
养成写if的好习惯
#include<stdio.h>
int main()
{
int num = 4;
if (num = 5)//注意:=是赋值,==才是判断。
{
printf("hehe\n");
}
return 0;
}
为了防止把“==”写成“=”,我们养成这个写if的习惯:
#include<stdio.h>
int main()
{
int num = 4;
if (5 == num)//这样写就可以避免写错,“5=num”的话代码会报错,“5==num”和“num==5”一样
{
printf("hehe\n");
}
return 0;
}
小练习
1.判断一个数是否为奇数:
#include<stdio.h>
int main()
int a;
scanf_s("%d", &a);
if (a > 0)
{
while (a > 1)
{
a = a - 2;
}
if (a == 0)
printf("a为偶数\n");
else
printf("a为奇数\n");
}
else if(a==0)
{
printf("a既不是奇数也不是偶数\n");
}
else
{while (a < 0)
{
a = a + 2;
}
if (a == 0)
printf("a是偶数\n");
else
printf("a是奇数\n");
}
return 0;
}
输出1-100之间的奇数:
#include<stdio.h>
int main()
{
int a=1;
int b=0;
while (a < 100)
{
while (a > 1)
{
a = a - 2;
b = b + 1;
}
if (0 == a)
{
a = a + 2 * b;
a = a + 1;
b = 0;
}
else
{
a = a + 2 * b;
b = 0;
printf("%d\n", a);
a = a + 1;
}
}
return 0;
}