[C语言]流程控制, 复合赋值, 优先级, 循环控制
----------------------------------------------------------------------------------------
//单一判断
if(a < ) {
printf("小于0");
} //else
if(a < ) {
printf("小于0");
} else {
printf("不小于0");
} //if嵌套
if(a < ) {
if(a < -) {
printf("小于-5");
} else {
printf("不小于-5");
}
} else {
printf("不小于0");
} //级联if else if
if(a < ) {
printf("小于0");
} else if(a < -) {
printf("小于-5");
} else if(a < -) {
printf("小于-10");
} else {
printf("不小于0");
} //级联if else if 另一种写法(推荐写法:单一出口)
int sign = ;
if(a < ) {
t = -;
} else if(a < -) {
t = -;
} else if(a < -) {
t = -;
} else {
t = ;
}
printf("%d", t); //多路分支
switch(a) {
case :
printf("");
break;
case :
printf("");
break;
default:
printf("other");
}
Tips: 1. 不省略大括号;
2. 赋值运算符与相等关系运算符在判断时注意不要用错
++与--
#include <stdio.h>
int main() {
int a;
a = ;
printf("a++=%d \n", a++); //2
printf("%d \n", a); //3
printf("++a=%d \n", ++a); //4
printf("%d \n", a); //4
return ;
}
注:不管是a++还是++a,最后a的值都为a+1;区别是a++是一个表达式,结果为a+1前的结果;++作为前缀,++a的结果是a+1后的结果。
while与do..while
int a = ;
scanf("输入一个数:%d", &a);
while(a > ) {
printf("a");
a--;
}
printf("a"); do{
printf("a");
a--;
}while(a > );
猜数游戏
//
// main.c
// demo11
//
// Created by weichen on 14/12/22.
// Copyright (c) 2014年 weichen. All rights reserved.
// #include <stdio.h>
#include <stdlib.h>
#include <time.h> int main(int argc, const char * argv[]) {
//猜数
srand(time());
int a = rand()% + ;
int number;
int count = ; do{
printf("请输入1-100的数:");
scanf("%d", &number); count++; if(a > number) {
printf("您输的数小了!\n");
}else if(a < number){
printf("您输的数大了!\n");
}else{
printf("恭喜,您在第%d次猜对了!", count);
}
}while(a != number); return ;
}
for循环
#include <stdio.h>
int main(int argc, const char * argv[]) {
//求阶乘
int n;
printf("请输入一个数:");
scanf("%d", &n);
int i = ;
int total = ;
/*
while(i <= n) {
total *= i;
i++;
}
*/
/*
for(i; i<=n; i++) {
total *= i;
}
*/
for(int i=; i<=n; i++) {
total *= i;
}
/*
int temp = n;
for(n; n>=i; n--) {
total *= n;
}
printf("%d的阶乘为%d", temp, total);
*/
printf("%d的阶乘为%d", n, total);
return ;
}
优先级
()
++ -- + - !
* / %
+ -
< <= > >=
== !=
&&
||
*= /= %= += -= =
循环控制
#include <stdio.h>
int main(int argc, const char * argv[]) {
// 用1角,2角,5角凑成5元的所有的方式
int one = ;
int two = ;
int five = ;
for(one = ; one < ; one++) {
for(two = ; two < /; two++) {
for(five = ; five < /; five++) {
if(one + two* + five* == ) {
printf("%d个1角加%d个2角加%d个5角可以凑成5元!\n", one, two, five);
}
}
}
}
return ;
}
//上述的通用形式
#include <stdio.h> int main(int argc, const char * argv[]) {
// 用1角,2角,5角凑成x元的方式
int one = ; //1角个数
int two = ; //2角个数
int five = ; //5角个数
int x = ; //钱数
int sign = ; //凑足标记 printf("请输入:");
scanf("%x", &x); for(one = ; one < x*; one++) {
for(two = ; two < x*/; two++) {
for(five = ; five < x*/; five++) {
if(one + two* + five* == ) {
printf("%d个1角加%d个2角加%d个5角可以凑成%x元!\n", one, two, five, x);
sign = ;
}
if(sign == ) {
goto out; //跳至指定位置(出循环,只输出一次满足需求的方式)
}
}
}
} out: return ;
} 注:break跳出当前循环,不包括父级循环;continue跳过本次循环,继续下次循环
Link: http://www.cnblogs.com/farwish/p/4172901.html
[C语言]流程控制, 复合赋值, 优先级, 循环控制的更多相关文章
- 04. Go 语言流程控制
Go 语言流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go 语言的常用流程控制有 if 和 for,而 switch 和 ...
- Go语言流程控制(六)
go语言的流程控制主要有if , for和switch. if else(分支结构) go语言的if判断: func main() { score:=65 if score>=90{ fmt.P ...
- 9. Go语言—流程控制
一.流程控制语法 if condition_1{ }else if condition_2{ }else if condition_3{ }else{ } 二.switch分支 package mai ...
- Go语言( 流程控制)
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码.降低重复代码而生的结 ...
- Go语言 - 流程控制 if else | for | switch case
流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制: if | for | switch | goto// switch ...
- C语言--流程控制
一.流程控制 1.顺序结构 *默认的流程结构,按照书写顺序执行每一条语句 2.选择结构 *对给定的条件进行判断,再根据判断结果来决定执行那一段代码 3.循环结构 *在给定条件成立的情况下,反复执行某一 ...
- 07-C语言流程控制if、switch
目录: 一.流程控制 条件分支 if else 二.流程控制 开关分支 switch 回到顶部 一.流程控制 条件分支 1.语法格式:if(表达式1){ //表达式1为真(非0时),执行的语句部分. ...
- Go语言流程控制
1.条件语句 几个注意点和C#不一样的. { } else { } ① 条件语句不需要使用括号将条件包含起来 a<5 ,C#必须有() ②无论语句体内有几条语句,花括号{}都是必须存在的:C#如 ...
- C语言流程控制
顺序结构 顺序结构是最常用的结构,即从上到下的执行语句. int num=5; num++; num=13; 条件结构 条件结构是当表达式为真的时候执行语句块,C语言提供了两种条件结构 if...el ...
随机推荐
- (转)Linux tcpdump命令详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...
- sqoop导出mysql数据进入hive错误
看mr的运行显示:sqoop job可以获得的select max(xxx)结果,但是当mr开始时却显示大片错误,就是连接超时,和连接重置等问题, 最后去每个节点ping mysql的ip地址,发现 ...
- js数组冒泡
var arr 1= [1, 2, 3, 4, 5]; 最简单的 每组数字之间用逗号隔开 第一个数的索引值为0.数字为1 以此类推 中括号的内容是存var arr2 = Array(1, 2, 3); ...
- MongoDB基础命令
MongoDB 入门命令 查看当前数据库 > show dbs admin 0.000GB config 0.000GB local 0.000GB > -- use databaseNa ...
- 锚点定位,jquery定位到页面指定位置
jquery锚点定位 $('body,html').animate({scrollTop: $('#ter1').offset().top}, 500);#ter1是你要定位的id对象,500是0.5 ...
- oracle补齐日期
生成日期列表 SELECT to_date( as first_login_day, ROWNUM - FROM DUAL CONNECT BY ROWNUM <= trunc(sysdate ...
- asp.net 基础内容
1. ViewData ViewBag TempData 区别? 1.ViewData和TempData是字典类型,赋值方式用字典方式,ViewData["myName"] 2. ...
- Java 递归详解
递归详解: 1.递归一句话通俗讲就是一个方法自动重复调用自己的过程. 2.因为是重复调用自己了,所以看起来像一个循环,所以为了避免内存溢出系统崩溃,我们需要在方法里加一个返回值判断,用于递归循环的跳出 ...
- IDEA 快捷操作 Windows
1.查找Action ctrl+shift+A :可通过其查询其他操作快捷键等. 2.项目之间跳转:ctrl+shift+[ 与 ctrl+shift+] 3.alt + 数字 展开对应窗口 4. ...
- 一个全栈Web/移动App开发学习路径
HTML.CSS 和 JavaScript 网页开发的基本元素,包括HTML.CSS个JavaScript.本课程完全适合零基础的同学,当然如果你有相关开发经验更好.在课程开始呢,我们先探索与讨论HT ...