您的位置:首页 > 编程语言 > C语言/C++

黑马程序员—-C语言入门十重奏之四相恋

2015-08-13 16:58 344 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

今天我们学完造句开始学写文章啦!C语言语句介绍,easy or not easy跟我继续看。
1.分支语句


if(表达式1){
语句块1
}else if(表达式2){
语句块2
}else{
语句块3
}


在一个函数中return后的语句都不执行
作用域只在自己的代码块里,局部变量
产生随机数的方法
#include<stdlid.h>
函数arc4random_uniform(n);
使用方法:n=几就从0-(几-1)随机输出个数


switch(){
case 1:
语句1;
break;
case 2:
语句2;
break;
default:
语句3;
break;
}


case语句的穿透问题
如果case后并没有结束,不加break;就会执行所有后面没加break;的case和default里的语句
此时break;作用是结束switch语句

IF SWITCH语句选择
如果一个题目分支较多且无法穷尽或进行大量列举时最好用if
如果确定分支数量不是很多,但是使用if语句判断较为麻烦时最好用switch
也可以判断完区间用if,然后再区间内用switch

switch使用注意事项
switch()括号里可以放
1.  整型变量
2.  常量
3.  返回值是整型的表达式(赋值表达式也可以)’a’+’a’/a=5-1
4.  可以转化为int类型的表达式例如字符’a’
case 常量表达式:
1.后面可以加大括号,不加大括号也可以有多行语句
2.case后面可以是常量(1)也可以是常量表达式(5+5)。不可以是变量表达式
3.default位置可以任意放。
4. 如果default放到switch最后可以不加break;当default没放到最后,而且switch里的语句和case匹配不上,也会和case一样穿透后面的所有switch里的语句。
5.case语句之后默认的第一句话不能定义变量,如果要在第一句话定义变量就加大括号,局部变量
6.编译器的bug:


#include <stdio.h>

int main(int argc, const char * argv[]) {
int a=0;
switch (a) {
case 1:
printf("000\n");
int num=10;//不加大括号可以再不是第一行时定义变量
break;
case 0:
printf("num = %d\n",num);//编译器的bug在上个case里定义的变量在当前case里还能用,而且上个case都没被执行
//            printf("num = %d\n",num1);下个case里的变量就不能用了
break;
case 2:
printf("111\n");
int num1=10;//不加大括号可以再不是第一行时定义变量
break;
default:
break;
}
printf("Hello, World!\n");
return 0;
}


2.循环语句
一.  while()
1.  循环控制条件(<=10)
2.  循环体
3.  能够让循环控制条件为假的语句(i++)
用while计算输入字符个数:


char ch;
int i=0;
scanf("%c",&ch);
while (ch != '\n') {
i++;
scanf("%c",&ch);//缓冲区如果还有字符就不会再让输入
}
printf("%d\n",i);
return 0;


while应用:游戏方向控制
1.  不知道要循环多少次的时候用死循环
2.  在某个范围内查找满足复合条件的值时
w(上) s(下) a(左) d(右)  q(退出)


思路:

1. 一直循环等待用户输入

2. 输入四个字符,打印对应的方向

switch

使用注意事项:

1.除0外任何值都是死循环

2.当一个变量与常量做比较 == !=时,将常量放前面最好

3.如果while循环只有一句话可以省略大括号

4.int i=0;

while(i<3);

{

printf(“1”);

i++;

}return 0;

5.while()

后面不能第一句就定义变量

空语句,上面是死循环

//
//  main.c
//  wsad
//
//  游戏方向控制
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
/*!
* 定义一个变量
写一个死循环
让玩家输入方向,如果玩家不输入方向系统会一直等待
w(上) s(下) a(左) d(右) q(退出)
*/
char direction;
printf("请控制小人移动: w(上) s(下) a(左) d(右) q(退出)\n");
int flag = 1;
while (flag) {
scanf("%c",&direction);
switch (direction)
4000
{
case 'w':
case 'W':
printf("上\n");
break;
case 's':
case 'S':
printf("下\n");
break;
case 'a':
case 'A':
printf("左\n");
break;
case 'd':
case 'D':
printf("右\n");
break;
case 'Q':
case 'q':
printf("退出\n");
flag = 0;
break;

default:
break;
}
}
return 0;
}


二. do-while

do{

语句块;

}while(条件);

while与dowhile对比

1. 当循环控制条件第一次判断不为假的时候

执行次数相同

2. 当循环控制条件第一次判断为假的时候

while不执行,dowhile执行一次

三. for(表达式1;表达式2;表达式3){

语句块;

}

省略模式1:

int I = 0;

for(;表达式1;表达式2){

语句块;

}

省略模式2:

int I = 0;

for(;表达式1;){

语句块;

i++;

}

省略模式3:

int i= 0;

for(;;){

if(i<5){

语句1;

i++;

}else{

//让循环结束

break;

}

}

int I = 0;

for(;i<100;i++,i++){//相当于i+2

语句块;

}

break;对if(){}else()不起作用

对多个循环不起作用

for(int i=1;i<=10;i++){
if(I ==5)
break;
}printf(“%d”,i);//1234


break跳出本循环,往后的都 不执行

continue跳出本次循环,继续执行i++;后的循环。用来加速循环

语句介绍完了,这都是基础,想深入认识,当然是多看书,多做题,坚持看下去,简单的先弄会。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  语句 ios C语言 基础