成为C++高手之条件语句
来源:互联网 发布:淘宝心选在哪里显示 编辑:程序博客网 时间:2024/05/22 12:45
scanf函数
printf是向控制台输出,scanf是从控制台输入,也就是从控制台获取用户输入的东西。当然也是格式化的方式,比如要获取用户输入的整数:
int number;
int r = scanf(“%d”,&number);
因为要用一个变量保存用户输入的东西,所以scanf()用输出参数的形式返回用户输入的值。所以第二个参数传入的是number的地址(&是取地址运算符)。用户输入的如果是数字,就保存那个数到number中,并且r是非0值;如果不是数字, r是0,number中是随机数,此时number不应该被使用。
注意用scanf()每次最好只获取一个数,否则很容易引起混乱。
写一个计算器
学到这里,可以写一个简陋的小程序了:计算器。第一版需求很简单:用户输入两个整数,输出和,退出。代码如下:
#include <stdio.h>int main(void){ //保存用户输入的数 int number1; int number2; //提示用户输入第一个数: printf("请输入第一个数:\n"); scanf("%d",&number1); //提示用户输入第二个数 printf("请输入第二个数:\n"); scanf("%d",&number2); //计算 int he = number1+number2; //输出结果 printf("%d+%d = %d\n",number1,number2,he); return 0;}
控制语句
上一节的例子其实很脆弱,用户输入不是数字的话,依然能计算出结果,这就让用户觉得很扯蛋了。改进一下吧。我们判断scanf的返回值,如果是0,就不计算并警告用户,否则就输出结果,程序如下:
#include <stdio.h>int main(void){ //保存用户输入的数 int number1; int number2; //提示用户输入第一个数: printf("请输入第一个数:\n"); int r =scanf("%d",&number1); //查看Scanf是否收到了正确的数 if(r==0){ printf("别调皮,这样不好玩,我走了\n"); //程序退出 return 0; } //提示用户输入第二个数 printf("请输入第二个数:\n"); r = scanf("%d",&number2); if(r==0){ printf("别调皮,这样不好玩,我走了\n"); //程序退出 return 0; } //程序运行到这里说明两次输入都正确 //计算 int he = number1+number2; //输出结果 printf("%d+%d = %d\n",number1,number2,he); return 0;}
用if来进行判断。判断条件放在小括号里。r==0 是一个算式,运算符“==”表示计算两边是否相等。如果相等,结果就是真(true),否则就是假(false)。结果是真的话,就进入if的大括号中执行,否则就略过大括号。
If的判断条件可以写的很复杂,但要看懂它,只需记住一个原则:那里面都是算式,最终计算结果为0就是false,非0就是true。负数也是true啊。至于if里如何写出组合条件,请自行上网查找,或参考与此文章配套的视频:http://edu.csdn.net/course/detail/2057。欢迎C语言初学者加入此群讨论:535807023 。
计算器第二版
这一版让我们的计算器支持加减乘除。要支持加减乘除,除了获取用户输入的两个运算数之外,还应获取运算符。运算符也可以用数字来代表,比如我们跟用户约定,1代表加,2代表减,3代表乘,4代表除。代码如下:
int main(void){ //保存用户输入的数 int number1; int number2; int opt;//运算符 //提示用户输入第一个数: printf("请输入第一个数:\n"); int r =scanf("%d",&number1); //查看Scanf是否收到了正确的数 if(r==0){ printf("别调皮,这样不好玩,我走了\n"); //程序退出 return 0; } //提示用户输入第二个数 printf("请输入第二个数:\n"); r = scanf("%d",&number2); if(r==0){ printf("别调皮,这样不好玩,我走了\n"); //程序退出 return 0; } //提示用户输入运算符 printf("请输入运算符(1234分别对应加减乘除):\n"); r = scanf("%d",&opt); if(r==0){ printf("运算符也是数字,别搞错好吗?你这样让我怎么混? 我走了\n"); //程序退出 return 0; } //程序运行到这里说明两次输入都正确 //检查是运算符是否是1234之一 if(opt == 1 || opt == 2 || opt == 3 || opt == 4){ int result;//存放计算结果 //跟据运算符进行不同的运算 if(opt == 1){ //加 result = number1+number2; } if(opt == 2){ //减 result = number1-number2; } if(opt == 3){ //乘 result = number1*number2; } if(opt == 4){ //除,现在只能整除 result = number1/number2; } //输出结果 printf("%d+%d = %d\n",number1,number2,result); }else{ printf("运算符必须是1,2,3,4之一才行!走了\n"); } return 0;}
else表示if条件的运算结果为false时执行的代码块。判断条件中的“||”表示或运算。意思就是如果opt等于1或opt等于2或opt等于3或opt等于4,那么条件成立。否则就执行else里的代码。
上一篇:成为C++高手之如何同时返回两个值
下一篇:成为C++高手之if与switch
- 成为C++高手之条件语句
- 成为C++高手之头文件与条件编译
- 成为高手的条件(转载)
- 怎样成为C 高手
- 成为php高手的八大条件
- 成为JAVA高手的八大条件(转载)
- 成为java高手的八大条件!
- 成为java高手的八大条件
- 成为java高手的八大条件
- 成为java高手的八大条件
- 成为java高手的八大条件
- 成为编程高手的八大条件
- 成为java高手的八大条件(转)
- 成为Java高手的八大条件
- 成为java高手的八大条件
- 成为java高手的八大条件
- 成为java高手的八大条件
- 成为java高手的八大条件
- Unity5.3官方VR教程重磅登场-系列1
- Color Grading with Unity and the Asset Store
- 【华为OJ】【036-iNOC产品部--完全数计算】
- 【华为OJ】【037-挑7】
- 【华为OJ】【038-iNOC产品部-杨辉三角的变形】
- 成为C++高手之条件语句
- 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场-系列3 VR中的交互方式
- Unity5.3官方VR教程重磅登场-系列4 VR中的用户界面
- 集合框架迭代器
- Unity5.3官方VR教程重磅登场-系列5 VR中的运动
- Unity5.3官方VR教程重磅登场-系列6 VR真机测试和产品发布
- android studio导入项目时乱码怎么处理?
- Android学习(48) -- 获取xml文件并解析.
- Gnome桌面的下拉式终端: Guake