c5

//
//  main.c
//  Switch练习2
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    // 从键盘输入一个月份,输出对应季节 12~2 冬季 3~5 春季 6~ 8 夏季 9~11 秋季(用switch)
    printf("请输入一个1~12的月份, 以回车结束
");
    int number = -1;
    scanf("%i", &number);
    switch (number) {
        case 12:
        case 1:
        case 2:
            printf("冬季");
            break;
        case 3:
        case 4:
        case 5:
            printf("春季");
            break;
        case 6:
        case 7:
        case 8:
            printf("夏季");
            break;
        case 9:
        case 10:
        case 11:
            printf("秋季");
            break;
        default:
            printf("USB
");
            break;
    }
     
    
    // 做一个计算器
    // 1.提示用户输入一个值
    printf("请输入第一个数
");
    // 2.定义变量接收用户输入的值
    int number1 = -1;
    // 3.接收用户输入的值
    scanf("%i", &number1);// 10 

    
    char temp;
    scanf("%c", &temp);
//    getchar(); // 专门用来获取字符, 会从输入缓冲区中获取字符
    
    // 4.提示用户输入一个操作符号
    printf("请输入你要进行的运算符 + - * / 
");
    // 5.定义变量接收用户输入的操作符号
    char op;
    // 6.接收用户输入的操作符号
    scanf("%c", &op); // 会有问题
    
    // 7.提示用户再输入一个值
    printf("请输入第二个数
");
    // 8.定义变量接收用户输入的值
    int number2 = -1;
    // 9.接收用户输入的值
    scanf("%i", &number2);
    
    // 10.根据用户的输入计算结果
    // 10.1判断用户输入的到底是什么操作符, 然后进行对应的计算
    int result = -1;
    switch (op) {
        case '+':
            result = number1 + number2;
            break;
        case '-':
            result = number1 - number2;
            break;
        case '*':
            result = number1 * number2;
            break;
        case '/':
            result = number1 / number2;
            break;
            
        default:
            
            break;
    }
    // 11.输出结果
    printf("result = %i
", result);
    return 0;
}
//
//  main.c
//  Switch注意点
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

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

    
    // 1.Switch得条件表达式注意点
    // Switch的条件表达式必须是返回整数的表达式, 也就是说()中只能放整数
    // 或者写能够转换为整数的类型也可以, 例如char, 因为char类型可以转换为int类型, 所以写char也可以
    switch ('A') {
        case 6:
            printf("6");
            break;
        case 8:
            printf("8");
            break;
        default:
            printf("other");
            break;
    }
    
   
    
    // 2.case的取值
    // Switch中, case后面只能放返回值是整数的表达式或者整数, 或者能够转换为整数的类型
    // case的取值不能重复
    // case后面不能放变量, 因为系统在编译的时候会对Switch后面所有的case进行优化, 会根据case后面的常量值, 生成一张取值表
    int number = 7;
    switch (6) {
        case 3 + 3:
            printf("6");
            break;
        case 'A':
            printf("8");
            break;
        case number:
            printf("8");
            break;
        default:
            printf("other");
            break;
    }
    
    // default的位置问题
    // Switch中的default可以随便放
    // 无聊default写到什么地方, 它都会最后执行(只有前面所有的case都不满足的情况才会执行)
    // 只要某一个case满足, 那么后面所有的case和default都会失效
    // 同理: 只要default满足, 那么所有的case都会失效
    switch (20) {
        default:
            printf("other
");
//            break;
        case 6:
            printf("6");
            break;
        case 8:
            printf("8");
            break;
    }
    return 0;
}
//
//  main.c
//  while循环
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>
/*
 if (条件表达式)
 {
    语句;
    ...
 }
 if是对给定的条件进行判断, 如果条件满足, 就执行if后面大括号中的内容
 
 while (条件表达式)
 {
     语句;
     ...
 }
 while是对给定的条件进行判断, 如果条件满足, 就执行while后面大括号中的内容, 执行完毕之后会再次判断条件表达式, 如果满足会再次执行while后面大括号中的内容, 直到条件表达式不满足位置
 术语: while后面大括号中的内容, 称之为 循环体
 
 while的应用场景: 当我们需要反复的执行某一段代码的时候就可以使用while
 */
int main(int argc, const char * argv[]) {
    
    /*
    printf("发射子弹
");
    printf("发射子弹
");
    printf("发射子弹
");
    printf("发射子弹
");
    printf("发射子弹
");
    printf("发射子弹
");
    printf("发射子弹
");
    printf("发射子弹
");
    printf("发射子弹
");
    printf("发射子弹
");
    */
    
    // 0.先将while的格式写好
    // 1.找到需要重复执行的代码, 将需要重复执行的代码放到循环体中
    // 2.确定结束条件(确定条件表达式)
    
    int count = 100;
    while (count > 0) {
        printf("发射子弹 %i
", count);
//        count = count - 1;
//        count -= 1;
        count--;
    }
    // 注意点: 和if一样, 如果条件表达式一开始就不满足, 那么循环体就不会被执行
    return 0;
}
//
//  main.c
//  while练习1
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    // 提示用户输入一个正整数n, 计算1 + 2 + 3 + ...n的和
    // 1.写代码之前应该先分析需求, 分析完需求再开始写代码
    // 2.一般情况下, 在做企业级开发时, 不会直接实现复杂的功能, 而且先实现一个简化的功能
    /*
       1 + 2 + 3 + 4 + 5
   0 + 1
(0 + 1)1 + 2
    (1 + 2)3 + 3
        (3 + 3)6 + 4
            (6 + 4)10 + 5
     规律 : 每一次都是用上一次的和加上一个数, 而且加上的这个数是一个递增的数
     */
    /*
    // 1.定义变量保存上一次的和
    int sum = 0;
    // 2.定义变量保存递增的数
    int count = 1;
     */
    /*
    // 3.计算
    //    0 + 1
    sum = sum + count;
    count++;
    //     1 +  2
    sum = sum + count;
    count++;
    //      3 + 3
    sum = sum + count;
    count++;
    //      6 + 4
    sum = sum + count;
    count++;
    //      10 + 5
    sum = sum + count;
    count++;
     */
    /*
    // 1.先写一个while
    // 2.找到需要循环执行的代码
    // 3.确定约束条件(结束条件)
    while (count <= 5) {
        printf("%i + %i
", sum , count);
        sum = sum + count;
        count++;
    }
    
    printf("sum = %i
", sum);
     */
    /*
    // 1.提示用户输入一个整数
    printf("请输入一个整数
");
    // 2.定义变量保存用户输入的整数
    int number = -1;
    // 3.接收用户输入的整数
    scanf("%i", &number);
     */
    
    // 4.安全校验
    /*
    if (number <= 0) {
//        return 0; // 结束函数
//        break; // 注意: break只能用在switch和循环结构中, 离开这两个东西没有任何效果
    }
     */
    // 2.定义变量保存用户输入的整数
    int number = -1;
    while (number <= 0) {
        // 1.提示用户输入一个整数
        printf("请输入一个整数
");
        
        // 3.接收用户输入的整数
        scanf("%i", &number);// -5 -10 5
    }
    
    // 4.根据用户输入的整数计算结果
    // 1 + 2 + 3 +.. +n, 规律, 用上一次的和加上一个递增的数
    // 1.先写一个while
    // 2.找到需要循环执行的代码
    // 3.确定约束条件(结束条件)
    int sum = 0;
    int count = 1;
    while (count <= number) {
//        int sum = 0; // 注意, 不能写到这个地方, 因为写到这里是一个局部变量, 作用域是从定义的这一行开始, 一直到循环体结束, 每次进来都会重新定义一个
//        int count = 1;
        
        printf("%i + %i
", sum , count);
        // 思想: 累加思想, 通过循环来进行累加
        sum = sum + count;
        count++;
    }
    printf("sum = %i
", sum);
    
    
    printf("other");
    return 0;
}
//
//  main.c
//  while练习2
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char * argv[]) {
    // 获取1~100之间 7的倍数的个数并打印,并统计个数
    // 1.分析
    
    // 1.获取0~100之间所有的数
    // 2.判断当前拿到的数是否是7的倍数, 没有余数
    // 3.定义变量保存7的倍数的个数(每次只要发现当前的数是7的倍数就加1)
    
    // 修改变量名称的快捷键 command + control + e
    int number = 0;
    int count = 0;
    while (number <= 20) {
        printf("%i
", number);
        if (number % 7 == 0) {
            // 证明当前的数是7的倍数
            count++;// 计数器思想, 如果以后开发中项获取什么中有多少个什么, 第一个时间就要想到计数器思想
            printf("7的倍数是 %i
", number);
        }
        number++;
    }
    printf("sum = %i
", count);
    return 0;
}

void call()
{
    int count = 0;
}
//
//  main.c
//  Switch练习
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
   
    // 要求用户输入一个数, 如果用户输入的数大于100, 那么就输出牛逼
    // 1.提示用户输入一个整数
    printf("请输入一个整数, 以回车结束
");
    // 2.定义变量保持用户输入的分数
    int number = -1;
    // 3.接收用户输入的值
    scanf("%i", &number);
    // 4.根据用户输入的值输出结果
    
    if (number > 100) {
        printf("NX");
    }
    
    
    switch (number) {
        case 101:
            printf("NX");
            break;
        default:
            break;
    }
    
    /*
     什么时候用switch, 什么时候用if
     在开发中一般情况下用if, if比较灵活
     如果说是对一些固定的值进行判断, 并且这些值得数量不多的情况, 可以使用switch
     从理论上来说, switch的性能效率比if高
     */
    return 0;
}

void test()
{
    /*
     要求用户输入一个分数,根据输入的分数输出对应的等级
     A 90~100 // 90/10 = 9 99/10 = 9 98/10 = 9   9|10 == A
     B 80~89 // 8
     C 70~79 // 7
     D 60~69 // 6
     E 0~59 //
     */
    // 1.第一种实现方式 if
    // 1.提示用户输入一个分数
    printf("请输入一个0~100的分数, 以回车结束
");
    // 2.定义变量保持用户输入的分数
    int score = -1;
    // 3.接收用户输入的值
    scanf("%i", &score);
    // 4.根据用户输入的值输出对应的结果
    
     if (score >= 90 && score <= 100) {
        printf("A
");
     }else if (score >= 80 && score <= 89)
     {
        printf("B
");
     }else if (score >= 70 && score <= 79)
     {
        printf("C
");
     }else if (score >= 60 && score <= 69)
     {
        printf("D
");
     }else
     {
        printf("E
");
     }
    
    
     if (score < 0 || score > 100) {
        printf("youtube
");
     }else if (score >= 90 && score <= 100) { // 70
        printf("A
");
     }else if (score >= 80)
     {
        printf("B
");
     }else if (score >= 70)
     {
        printf("C
");
     }else if (score >= 60)
     {
        printf("D
");
     }else
     {
        printf("E
");
     }
     
    
     // 2.第二种实现方式 switch
     switch (score/10) {
     case 10:
     //            printf("A
");
     //            break;
     case 9:
        printf("A
");
        break;
     case 8:
        printf("B
");
        break;
     case 7:
         printf("C
");
         break;
     case 6:
         printf("D
");
     default:
         printf("E
");
         break;
     }
    
}
//
//  main.c
//  break关键字,break只会跳出一层循环,不会跳出多层循环,
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    
    // 打十发子弹之后就不打了(打不动了)
    int number = 100;
    while (number > 0) {
        
        printf("发射子弹 %i 
", number);
        number--;
        if (number < 90) {
            printf("不打了
");
            break;// break用于跳出循环
        }
    }
    return 0;
}
//
//  main.c
//  continue关键字
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    
    int number = 100;
    while (number > 0) {
        
        printf("发射子弹 %i
", number);
        number--;
        if (number % 10 == 0) {
            printf("休息一下
");
        }

        // 这些操作, 如果是休息就不做
        printf("还有很多复杂的操作
");
    }
    

    
    int number = 100;
    while (number > 0) {
        
        printf("发射子弹 %i
", number);
        number--;
        if (number % 10 == 0) {
            printf("休息一下
");
            continue; // 跳过本次循环, 进去下一次循环
            // 只要看到continue 那么后面的所有语句都不会执行, 会执行再次去判断条件表达式
        }
        // 这些操作, 如果是休息就不做
        printf("还有很多复杂的操作
");
    }
    
    
    // 把100~200之间的不能被3整除的数输出
    int number = 99;
    while (number < 200) {
        
        number++;
        // 当前输出语句, 并不是所有情况都需要输出, 只有当前获取到得数不能被3整除才输出
        // 如果当前获取到得数能被3整数, 就不执行printf语句
        if (number % 3 == 0) {
            continue;
        }
        printf("number = %i
", number);
        
        number++;
        if (number % 3 != 0) {
            printf("number = %i
", number);
        }
        
    }

    return 0;
}
//
//  main.c
//  dowhile
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>
/*
 while (条件表达式)
 {
    语句;
    ...
 }
 
 do
 {
    语句;
    ...
 }while (条件表达式);
 
 do while和while的区别: 
 while如果条件表达式一开始就不满足, 那么循环体永远不会被执行
 
 do while如果条件表达式一开始就不满足, 同样会执行一次循环体
 也就是说: 无论条件表达式是否满足, do while始终会执行一次循环体
 */
int main(int argc, const char * argv[]) {
    
    int i = 0;
    while (i < 0) {
        printf("%i
", i);
        i++;
    }
    
    printf("------------
");
    
    int j = 0;
    do{
        printf("j = %i
", j);
        j++;
    }while (j < 0);
    
    
    // 一般情况下, 能用while就用while
    // do while一般用于校验
    
    // 2.定义变量保存用户输入的整数
    int number = -1;
    // 无论如何都需要用户输入一次数据
    
    while (number <= 0) {
        // 1.提示用户输入一个整数
        printf("请输入一个整数
");
        
        // 3.接收用户输入的整数
        scanf("%i", &number);// -5 -10 5
    }
    
    do {
        // 1.提示用户输入一个整数
        printf("请输入一个整数
");
        
        // 3.接收用户输入的整数
        scanf("%i", &number);// -5 -10 5
    } while (number <= 0);
    
    // 4.根据用户输入的整数计算结果
    int sum = 0;
    int count = 1;
    while (count <= number) {
        printf("%i + %i
", sum , count);
        sum = sum + count;
        count++;
    }
    printf("sum = %i
", sum);
    
    return 0;
}
//
//  main.c
//  for和while的对比
//
//  Created by xiaomage on 15/6/6.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    
    // 什么时候用while?
    // 如果用于控制循环的增量在循环执行完毕之后还需要使用, 那么可以使用while
    int count = 100; // 用于控制循环什么时候结束
    while (count > 0) {
        printf("发射子弹 %i
", count);
        count--; // 控制循环的次数, 当每次循环执行完毕之后都会执行一次
    }
    printf("count = %i
", count);
    
    // 如果用于控制循环的增量在循环执行完毕之后不需要使用了, 那么可以使用for
    for (int number = 100; number > 0; number--) {
        printf("发射子弹%i
", number);
    }
    printf("number = %i
", number);
    
    // 其实在企业开发中, 只要会用for就可以了, while能做的for都能做
    return 0;
}
//
//  main.m
//  循环嵌套练习3
//
//  Created by 李南江 on 15/6/20.
//  Copyright © 2015年 xiaomage. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    /*
     1
     12
     123
     */
    /*
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j <= i; j++) {
            printf("%i", j + 1);
        }
        printf("
");
    }
     */
    
    /*
     1
     22
     333
     */
    /*
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j <= i; j++) {
            printf("%i", i + 1);
        }
        printf("
");
    }
     */
    
    /*
     --*
     -***
     *****
     
     --
     -
     
      *
     ***
    *****
     */
    for (int i = 0; i < 3; i++) {
        for (int j = i; j < 2; j++) {
            printf("-");
        }
        
        //                   0 * 2 = 0
        //                   1 * 2 = 2
        //                   2 * 2 = 4
        for (int n = 0; n <= i * 2; n++) {
            printf("*");
        }
        printf("
");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/yaowen/p/7380359.html