昨天给电脑装系统,折腾到今天上午才折腾好,今天补上昨天的学习内容。

昨天学习了for循环、函数。

一、for循环

1.结构

语句1; 条件 ; 语句2)

 {

循环体

 }

 语句1:初始化语句(整个for循环只会执行一次)

 语句2:增量语句(执行完循环体后再执行的语句)



2.特点

 1>for一开始就会执行一次语句1(整个for循环只会执行一次)

 2>判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再判断条件是否成立

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    //for循环
    for (int count = 0; count < 50; count++) {
        printf("做第%d次俯卧撑\n",count);
    }
    
    //for循环,另一种写法
    for (int count = 0; count < 50; printf("做第%d次俯卧撑\n",count), count++) {
        
    }
    
    //实现同样条件,while循环
    int count = 0;
    while(count < 50){
         printf("做第%d次俯卧撑\n",count);
        count++;
    }
    
    //逗号运算符
    printf("做俯卧撑\n"),printf("哈哈哈\n");
    
    
    return 0;
}




3.for循环的注意事项

#include <stdio.h>

int main(int argc, const char * argv[])
{
    /*不要随便在for()后面写分号
     for (int i = 0; i < 5; i++)
     {
        printf("哈哈\n");
     }
     */
    
    /*错误写法,如果for()后面{}取消,就执行紧挨着的语句,不能有空行
     for (int i=0; i<5 ; i++)
     
        int a = 10;
     */
    
    /*错误写法,作用域问题,这里的a只能用在循环体{}中,当执行完之后,{}中数据消失,则相当于a++,并没有定义a
     for(int i = 0; i <10;i++ ,a++)
     {
        //a只能用在循环体{}中
        int a = 10;
     }
     */
    
    //作用域问题,当执行时,{}内没有定义a的值,所以他会出去寻找a=9的值
     int a = 10;
     
     for(int i = 0,a = 9; i < 5; i++)
     {
        //int i = 10;
     
        printf("a = %d\n",a);
     }
     
    
    //最简单的利用for循环实现死循环
    for(;;);
    
    
    return 0;
}



4.循环嵌套

/*
 输入下面内容
 
 好友列表1
    好友1
    好友2
    好友3
    好友4
    好友5
    好友6
 好友列表2
    好友1
    好友2
    好友3
    好友4
    好友5
    好友6
 */

#include <stdio.h>

int main(int argc, const char * argv[])
{

    for (int i = 0; i < 5; i++) {
        printf("好友列表%d\n",i+1);
        
        for (int j = 0; j < 3; j++) {
            printf("    好友%d\n",j + 1);
        }
    }
}



5.练习:

 提示用户输入一个正整数n,如果n=5,就输入下列图形,其他n值以此类推

 *****

 ****

 ***

 **

 *

#include <stdio.h>

int main(int argc, const char * argv[])
{
    //1.定义一个变量存储用户输入的值
    int n = 0;//一定要初始化
    
    //2.判断n值合不合理
    while(n <= 0){
        
        //2.1提示用户输入正整数
        printf("请输入一个正整数:");
        
        //2.2接收输入的数据
        scanf("%d",&n);
    }
    
    //3.输出图形
    for (int i = 0; i < n; i++) {
        for (int j = 0; j <n-i; j++) {
            printf("*");
        }
        printf("\n");
    }
 
    return 0;



6.对整个流程控制总结

一、选择结构
1.if
1>结构
if(条件)
{

}else if{

}else if{

}else{

}
2>特点:
*同一时刻,只有一个大括号里面的代码会被执行

2.switch
1>结构
switch(数值)
{
    case 数值1:
        break;
    
    case 数值2:
        break;
        
    case 数值3:
        break;
        
    default:
        break;
}

2>特点:
*默认情况下,只有一个case后面的代码会被执行
*如果一个case后面没有break,而且这个case成立,就会按顺气执行后面所有case中的语句,知道遇到break为止
*如果要在case后面定义一个新的变量,必须用大括号{}包住

二、循环结构
1.while
特点:如果一开始条件就不成立,永远不会执行循环体

2.do while
特点:不管条件是否成立,至少会执行一次循环体

3.for

4.选择
1>一般优先使用for循环
2>然后在考虑while
3>最后再考虑do while



7.continue和break的使用注意事项

/*

 break:

使用场合

语句:退出整个switch语句

 2>循环结构:退出整个循环语句

    *while

    *do while

    *for

 2.注意点:

 

 

 continue:

 1.使用场合

   循环结构:结束当前这次的循环体,进入下一次循环体

    *while

    *do while

    *for

注意点

*/

#include <stdio.h>

int main(int argc,constchar
{
/*
     for (int i = 0;i < 5;i++)
     {
        printf("%d\n",i);
     
        if (i%2)
为整数:1、3
            continue;
        }
     }
     */
    
    
for (int i =0; i<3;i++)
        {
for (int j =0;j <2;j++)
            {
if (j ==1)
                {
//                continue;
break;
                }
printf("A\n");
            }
//        break;
printf("B\n");
        }
return0;
}



二、函数

1.函数的定义

 返回值类型 

 {

函数名

 }


2.函数的基本使用


#include <stdio.h>

int  printLine()
{
    printf("---------------\n");
    return 0;
}

int average(int num1 ,int num2)
{
    return (num1 + num2)/2;
}


int main(int argc, const char * argv[])
{
//    printLine();
//    printLine();
    
    int a = 10;
    int b = 9;
    
    int c = average(a , b);
    
    printf("c is %d\n",c);
    
    int a1 = 11;
    int b1 = 20;
    
    int d = average(a1, b1);
    printf("d is %d\n",d);
    
    
    return 0;
}



3.函数的基本点:


 1>形式参数:定义函数时函数名后面()中的参数,简称形参

 2>实际参数:调用函数时传入的具体数据,简称实参

 3>实参个数必须等于形参个数

 4>函数体内部不能定义和形参一样的变量

 5>如果是基本数据类型作为函数形参,纯粹是值传递,修改函数内部形参的值,并不会影响外面实参的值,充分演示了函数内存执行的整个过程

 6>一个函数可以没有形参,也可以由无限多个形参

#include <stdio.h>

//形式参数,简称形参
int sum(int num1 ,int num2)
{
    //函数体内部不能定义和形参一样的变量
    //int num1;
    
    num1 = 50;
    return num1 + num2;
   
}

int main(int argc, const char * argv[])
{
    //a、b称为函数的实际参数,简称实参
    int a = 100;
    int b = 27;
    
    int c = sum(a , b);
    
    //这里充分演示了函数内存执行的整个过程,看博客图
    printf("a = %d , b = %d ,c =%d\n",a , b , c);
    return 0;
}



此图为上面函数内存分布思考图。

ios开发循环位移动画_#include



4.关于returen函数的作用


的作用

 1>退出函数

 2>返回一个具体值给函数调用者

 返回值注意点:

代表没有返回值

 2>如果没有明确说明返回值类型,默认返回为int类型

 3>就算明确声明了返回值类型,也可以不返回任何值




#include <stdio.h>

char test()
{
    return 'A';
}

int tset2(){
    printf("888888888\n");
//    return 10;
}

/*伪代码
void login(QQ,密码)
{
    //1.验证QQ有没有值
    if (QQ没有值) return;
    
    //2.验证密码有没有值
    if (密码没有值) return;
    
    //3.把QQ、密码发送到服务器
}*/


int main(int argc, const char * argv[])
{

    int c = test2();
    printf("c=%d\n",c);
    return 0;
}



昨天就学到这里。