第八次C++学习小结

今天我们学习了另一个循环语句的表达式:while。

while循环的样子是while(){}其中小括号中为循环条件,只要小括号中的条件为真,while就会进行循环。{}中表示的循环的语句。例如:int m=0;

while(m<10)

{m++;

printf("%d\n",m);}

这样输出的结果应该是从0-10,如果把m++换成++m,输出的结果就变成了1-10,为什么呐?

因为在while中,如果++符号在变量m前,则表示先计算++自增,再打印出m变量的值,如果++符号位于变量m的后面,则表示先输出打印m,再进行符号++的自增运算。

然后我们学习了do{}while()这个命令,这个和while有一点不同就是,while语句是先进行判断,再决定是否运行循环。而do{}while()则是先不管while()中的条件是真或假,先运行一遍,再判断真假,进而决定是否继续循环。这个方法一般用于想测试结果的程序,又不知道是否存在BUG的情况下。

这里我们再用猜数字的游戏进行一下练习,就是把for语句的猜数字变成while和do()while{}。

#include<stdio.h>


int main()


{
int c = 65;//rand()%100;如果替换这个的话,就是随机数。


int num = 0;
int count = 5;//我们还是限定5次输入。
while ( count > 0 )//循环的条件就变成了次数大于0


{
scanf_s("%d", &num);
count--;
if (num > c)    //如果输入的数字大了。


{
printf("大了!");


continue;
}


else if (num < c)//如果输入的数字小了。


{
printf("小了!");


continue;
}


printf("恭喜你,猜对了!");
}//如果正好相等,不进入循环,直接输出结果。

以上可以看出来while语句解决这个问题还是挺轻松的。下面我们再做一个练习题。

累计键盘输入的数字的和,当输入数字为0时,结束程序。

#include<stdio.h>


int main()


{
int a = -1;//随便设定一个值,不是0就可以。
int b = 0;
while (a != 0)//判定条件a不能是0,否则不进入循环。
   {
scanf_s("%d", &a);
b += a;//表示b=a+b,记住b-=a表示b=b-a;
printf("sum=%d\n", b); //输出结果是和。
}

}

以上大家发现通过while命令,我们已经可以和程序做一些简单的互动了,并且可以写一些简单的小命令,帮助我们工作。

最后为大家介绍一个语句,switch(n){case:break;}

这个语句的含义是如果变量的值等于n,就执行XXXX命令。这里要注意两点:首先switch中的数必须是整数,还有一点,case的值不能重复。

练习:尝试输入1打印星期一,输入2打印星期二.....直到输入7打印星期日,输入其它数字显示错误。

#include<stdio.h>


int main()


{
int a;
while (1)                        //属于测试用循环,没有意义。
{
scanf_s("%d", &a);      //注意在输入时不要添加换行符“\n”。
switch (a)
{
case 1:
{printf("周一");
break; }
case 2:
{printf("周二");
break; }
case 3:
{printf("周三");
break; }
case 4:
{printf("周四");
break; }
case 5:
{printf("周五");
break; }
case 6:
{printf("周六");
break; }
case 7:
{printf("周日");
break; }
default:
{printf("错误!");
break; }
}
}

}

以上就是我们课上所学习的内容,最后老师留了一个作业,那就是输入+-*/%,通过输入任意两个数字和运算符得出结果。

#include<stdio.h>

int main()
{
int a, b;
char fh;
scanf_s("%d%c%d", &a, &fh, 1, &b);
switch (fh)
{
case '+':
{printf("%d%c%d=%d", a, fh, b, a + b);
break; }
case '-':
{printf("%d%c%d=%d", a, fh, b, a - b);
break; }
case '*':
{printf("%d%c%d=%d", a,fh, b, a*b);
break; }
case '/':
{printf("%d%c%d=%d", a, fh, b, a / b); };
case '%':
{printf("%d%c%d=%d", a, fh, b, a % b); };
default: (b = 0);
break; 
}

}

以上就是我的作业结果,当然没有加入循环测试,因为搞不懂怎么加入循环才能不崩溃。。。。

猜你喜欢

转载自blog.csdn.net/gkht007/article/details/79762989