运算符和条件结构

表达式:是有操作数和运算符组成的。

操作数:常量、变量、子表达式

X=(x+2)*(y-2);

运算符:

赋值运算符:= 。其作用是做赋值运算,将等号后边的值赋值给等号前边的。

复合赋值运算符: +=,-=,*=,/=,%=

//复合运算符
    int x=10;
    printf("%d\n",x+=5);//x=x+5;==>x=15
    printf("%d\n",x-=5);//x=x-5;==>x=10
    printf("%d\n",x*=5);//x=x*5;==>x=50
    printf("%d\n",x/=5);//x=x/5;==>x=10
    printf("%d\n",x%=5);//x=x%5;==>x=0    

算术运算符: 做算术运算。

二元运算符:+,-,*,/,%

一元运算符: ++,--

如果++或—放在操作数的前面(++i或--i),先做自加或自减操作,再做其他操作

如果++或—放在操作数的后面(++i或--i),先做其他操作,再自加或自减操作

关系运算符(比较运算符):用于比较两个操作数之间的关系。

>,>=,<,<=,!=,==

注意:在C语言中0代表假,非零代表真。

逻辑运算符: 连接一个或多个条件

&&(与):并且----> 一假必假

||(或): 或者--->一真必真

!(非):取反-à非真必假,非假必真。

条件语句

简单的if条件结构:

语法:

if(条件){

//语句;

}

    int age;
    printf("请输入您的年龄:\n");
    scanf("%d",&age);
    if(age<18)
    {
        printf("未成年!\n");
    }
    if(age>=18)
    {
        printf("成年!\n");
    }

if…else 条件结构

语法:

if(条件){

语句1;

}else{

语句2;

}

//判断是否成年
if(age<18)
    {
        printf("未成年!");
    }
    else
    {
        printf("成年!");
    }
//判断奇偶数
  int num;
    printf("请输入一个整数:\n");
    scanf("%d",&num);
    if(num%2==0){
         printf("%d是一个偶数!\n",num);
    }else{
         printf("%d是一个奇数!\n",num);
    }
/*判断用户输入的数是否为水仙花数(三位数: 个位的3次方+十位的3次方+百位的3次方=这个数)
     eg:  153=1^3+5^3+3^3
     思路:
     1.获取用户输入的3位数。
     2.从这个3位数中分别获取个位,十位,百位
     3.判断该数字是否为水仙花数: 个位^3+十位^3+百位^3==这个数本身*/
  int num,ge,shi,bai,he;//保存用户输入的3位数
    printf("请输入一个3位数:");
    scanf("%d",&num);//获取用户输入的3位数 ==>123
    ge = num%10;//获取个位  123%10==>3
    shi = num/10%10;//获取十位 123/10==>12%10==>2
    bai = num/100;//获取百位
    he = ge*ge*ge+shi*shi*shi+bai*bai*bai;
    if(he==num){
        //printf("进入if中...");
        printf("%d是水仙花数!\n",num);
    }else{
        //printf("进入else中...");
        printf("%d不是水仙花数!\n",num);
    }
//判断用户输入的字符是否为小写字母
char c;
     printf("请输入一个字母:\n");
     scanf("%c",&c);

     /*
     if(c>=‘a‘&&c<=‘z‘){
         printf("您输入的%c字符为小写字母!\n",c);
      }else{
        printf("您输入的%c字符非小写字母!\n",c);
     }
*/
if(c<‘a‘||c>‘z‘){
         printf("您输入的%c字符非小写字母!\n",c);
     }else{
         printf("您输入的%c字符为小写字母!\n",c);
     }
/*判断用户输入的年份是否属于闰年
分析闰年的判断条件:(能被4整除并且不能被100整除)或者(能被400整除) */
   int year;
     printf("请输入年份:\n");
     scanf("%d",&year);//获取用户输入的年份
     if((year%4==0&&year%100!=0)||(year%400==0)){
         printf("%d是闰年,一年有366天!\n",year);
     }else{
          printf("%d是平年,一年有365天!\n",year);
     }
/*实现一个猜拳的小游戏
分析: 0代表剪刀,1代表石头,2代表布
    用户AVS用户B
    用户A胜==>
        1.用户A:0&&用户B:2
        2.用户A:1&&用户B:0
        3.用户A:2&&用户B:1
    平局: 用户A==用户B
    用户A败:
        1.用户A:0&&用户B:1
        2.用户A:1&&用户B:2
        3.用户A:2&&用户B:0*/
   int userA,userB;
     printf("**************************************\n");
     printf("*************尚学堂猜拳小游戏***********\n");
     printf("**************************************\n");
     printf("0代表剪刀,1代表石头,2代表布\n");
     printf("请用户A出拳:\n");
     scanf("%d",&userA);
     printf("请用户B出拳:\n");
     scanf("%d",&userB);
     //用户A胜
     if((userA==0&&userB==2)||(userA==1&&userB==0)||(userA==2&&userB==1)){
        printf("恭喜用户A,你获胜了~~~~~\n");
     }
     //平均
     if(userA==userB){
        printf("两位选手旗鼓相当,平局!\n");
     }
     //用户A败
     if((userA==0&&userB==1)||(userA==1&&userB==2)||(userA==2&&userB==0)){
        printf("恭喜用户B,你获胜了~~~~~\n");
     }     

sizeof运算符:用于查看数据类型在内存所占用的字节数。

用法:sizeof(type_name)

    printf("short类型占%d个字节\n",sizeof(short));
    printf("int类型占%d个字节\n",sizeof(int));
    printf("long类型占%d个字节\n",sizeof(long));
    printf("float类型占%d个字节\n",sizeof(float));
    printf("double类型占%d个字节\n",sizeof(double));
    printf("char类型占%d个字节\n",sizeof(char));

_____________________________________________

综合练习

/*判断一个5位数是否为回文数(个位和万位相同,十位和千位相同)*/
  int num,ge,shi,qian,wan;
    printf("请输入一个5为整数:\n");
    scanf("%d",&num);
    //分解该数中个位,十位,千位和万位
    ge = num%10;//个位
    shi=num/10%10;//十位
    qian=num/1000%10;//千位
    wan=num/10000;//万位
    if((ge==wan)&&(shi==qian)){
        printf("%d是回文数\n",num);
    }else{
        printf("%d不是回文数\n",num);
    }    

______________________________________________

多重If条件结构:

基本语法:

if(条件1){

//语句1

}else if(条件2){

//语句2

}else if(条件3){

//语句3

}….

}else {

//语句N;

}

注意1:条件的范围和位置是有可能影响执行结果的,正确排放条件的方式:

范围小的条件-->范围大的条件

/*根据用户输入的成绩动态判断该成绩对应的结果(90以上:优;80~90:良;60~80:中;60以下:差)*/
    int score;
    printf("请输入成绩:\n");
    scanf("%d",&score);
     if(score>100||score<0){
          printf("您输入的成绩有误,成绩应该在0~100之间!\n");
     }else{
         if(score>=90){
             printf("优!\n");
        }else if(score>=80){
            printf("良!\n");
        }else if(score>=60){
            printf("中!\n");
        }else{
             printf("差!\n");
        }
     }

if嵌套:一个if语句中包含其他的if语句.

语法:

if(条件){

if(条件2){

  语句;

}

}

//判断用户输入的数字是否为玫瑰花数。
int num,ge,shi,bai,qian,he;
printf("请输入一个4位数:\n");
scanf("%d",&num);//获取用户输入的四位数
//判断该数是否为4位数
if(num>999&&num<10000){
   ge = num%10;//个位
   shi = num/10%10;//十位
   bai = num/100%10;//百位
   qian = num/1000;//千位
   he = ge*ge*ge*ge+shi*shi*shi*shi+bai*bai*bai*bai+qian*qian*qian*qian;
   if(num==he){
      printf("%d是一个玫瑰花数!\n",num);
   }else{
      printf("%d不是一个玫瑰花数!\n",num);
        }
 }else{
  printf("您输入的不是一个4位数,请重新输入!");
 }  

switch条件结构: 代替多重if结构做等值判断。

注意:

1.case后的常量值不能相同。

2.switch中的表达式必须是int类型或char类型。

3.case中如果没有break关键字,将出现case穿透。

switch(表达式){

case 值1:

语句1;

break;

case 值2:

语句2;

break;

....

default:

语句N;

}

//令狐冲参加武林大会,第一名奖励:葵花宝典;第二名:辟邪剑谱 第三名:吸星大法 ;其他:逐出师门!
/*
    int num;
    printf("请输入令狐冲的名称:\n");
    scanf("%d",&num);

    if(num==1){
        printf("奖励葵花宝典一本!\n");
    }else if(num==2){
        printf("奖励辟邪剑谱一本!\n");
    }else if(num==3){
        printf("奖励吸星大法一本!\n");
    }else{
        printf("逐出师门!\n");
    }*/
//使用switch代替多重if做条件判断
    switch(num){
         case 1:
             printf("奖励葵花宝典一本!\n");
             break;
         case 2:
             printf("奖励辟邪剑谱一本!\n");
            break;
         case 3:
            printf("奖励吸星大法一本!\n");
            break;
         default:
            printf("逐出师门!\n");
     }
   int score;
    printf("请输入分数:\n");
    scanf("%d",&score);
    if(score>=0&&score<=100){
           switch(score/10){
             case 10:
            case 9:
                printf("A\n");
                break;
            case 8:
                printf("B\n");
                break;
            case 7:
                printf("C\n");
                break;
            case 6:
                printf("D\n");
                break;
            default:
                printf("E\n");
                break;
           }

    }else{
           printf("输入的分数有误!\n");
    }
//利用switch中的case穿透实现计算指定日期为一年的第多少天?
int year,month,date,totalDays=0;
int isRun=0;//平年和闰年相差的天数
printf("请输入日期(yyyy-MM-dd)\n");
scanf("%d-%d-%d",&year,&month,&date);//获取年月日 2017-5-9
if((year%4==0&&year%100!=0)||(year%400==0)){
    isRun=1;
}
     switch(month){
         case 12:
             totalDays+=30;//加上11月份的天数
        case 11:
               totalDays+=31;//加上10月份的天数
        case 10:
             totalDays+=30;//加上9月份的天数
        case 9:
             totalDays+=31;//加上8月份的天数
        case 8:
             totalDays+=31;//加上7月份的天数
        case 7:
             totalDays+=30;//加上6月份的天数
        case 6:
             totalDays+=31;//加上5月份的天数
        case 5:
             totalDays+=30;//加上4月份的天数
        case 4:
             totalDays+=31;//加上3月份的天数
        case 3:
             totalDays+=28+isRun;//加上2月份的天数
        case 2:
             totalDays+=31;//加上1月份的天数
        case 1:
             totalDays+=date;//加上日期
     }
     printf("%d-%d-%d是一年中第%d天\n",year,month,date,totalDays);
/*根据用户输入的字符,判断该字符的类别。
        0~32:控制字符
        ‘0‘~‘9‘:数字
        ‘A‘~‘Z‘:大写字母
        ‘a‘~‘z‘:小写字母
        剩余的为其余字母。*/
    char c;
    printf("请输入一个字符:");
    //scanf("%c",&c);
    c=getchar();
    if(c<32){
        printf("控制字符!\n");
    }else if(c>=‘0‘&&c<=‘9‘){
        printf("数字!\n");
    }else if(c>=‘A‘&&c<=‘Z‘){
        printf("大写字母!\n");
    }else if(c>=‘a‘&&c<=‘z‘){
        printf("小写字母");
    }else{
        printf("其他字符!\n");
    }
/*个人所得税计算器
应纳税所得额 = 税前工资收入金额 - 起征点(3500元)
    应纳税额 = 应纳税所得额 x 税率 - 速算扣除数*/
float salary,taxSalary,tax,realSalary;
printf("请输入的您的税前工资:\n");
scanf("%f",&salary);//获取税前工资
taxSalary=salary-3500;//应纳税所得额(应纳税的工资部分)
     if(taxSalary>0&&taxSalary<=1500){
         tax = taxSalary*0.03;
       }else if(taxSalary>1500&&taxSalary<=4500){
           tax = taxSalary*0.1-105;
       }else if(taxSalary>4500&&taxSalary<=9000){
           tax = taxSalary*0.2-555;
       }else if(taxSalary>9000&&taxSalary<=35000){
           tax = taxSalary*0.25-1005;
       }else if(taxSalary>35000&&taxSalary<=55000){
               tax = taxSalary*0.3-2755;
       }else if(taxSalary>55000&&taxSalary<=80000){
               tax = taxSalary*0.35-5505;
       }else if(taxSalary>80000){
               tax = taxSalary*0.45-13505;
       }
  realSalary = salary-tax;//计算税后工资
  printf("您的工资:¥%0.2f,应缴个税:¥%0.2f,税后工资:¥%0.2f\n",salary,tax,realSalary);       

条件运算符(三目运算符):? 代替if...else结构

语法:条件表达式?表达式1:表达式2

   int a,b,max;
    printf("请输入两个数:\n");
    scanf("%d %d",&a,&b);
    //if(a>b){
    //    max=a;
    //}else{
    //    max=b;
    //}
     max=a>b?a:b;
    printf("%d和%d中最大的是%d",a,b,max);    
时间: 2024-12-29 11:19:33

运算符和条件结构的相关文章

Java 运算符,条件结构小总结

  今天是开始学习的第三天,总结下这两天学的内容,主要是运算符和条件结构.       下面是运算符的一个小总结:  算术运算符 赋值运算符 关系运算符  逻辑运算符 位运算符 条件运算符 +取正时为单目,加时为双目 = 只表赋值 == 双目 && 短路与 & a?b:c  - 取负时为单目,减时为双目  += 双目 !=   结果  ||   短路或  |   */ 双目  -= >=  都是  !非运算  ^   % 模除即取余数,双目  *= <=  布尔  &a

C语言之运算符和条件结构

表达式:是有操作数和运算符组成的. 操作数:常量.变量.子表达式 X=(x+2)*(y-2); 运算符: 赋值运算符:= .其作用是做赋值运算,将等号后边的值赋值给等号前边的. 复合赋值运算符: +=,-=,*=,/=,%= Eg: x+=5 :x=x+5; //复合运算符 int x=10; printf("%d\n",x+=5);//x=x+5;==>x=15 printf("%d\n",x-=5);//x=x-5;==>x=10 printf(&q

JAVA的运算符和条件结构

一.JAVA的运算符. 1.赋值运算符 赋值就是把一个变量的值赋给另一个变量. 语法: 变量名=表达式     例如  n = m + 5 2.算术运算符      算术运算符是数学中常用的加.减.乘.除.余.(+.-.*./.%)   复合算术运算符:+=.-=.*=./=.%= 例如 a+=1 就是 a = a + 1   自增自减运算符:++.- -. 例如 a++ 就是 a = a+1 注意!a++是先运算在赋值,而++a是先赋值在运算!! 3.关系运算符 关系运算符就是比较两个操作数的

第三部分、类型转换,运算符和条件结构

一.类型转换 1.自动类型转换 原则:把范围小的类型的值转换到范围大的类型的值 short < int < long < float < double 2.强制类型转换 double num = 6;//小类型转换大类型--自动类型转换 int num1 = (int)num;//大类型转换小类型--强制类型转换 二.运算符 1.赋值运算符 单等号=(计算顺序:从右向左) 复合赋值运算符 int num = 10; num += 5;//等价为num = num + 5; //输出

Java 第三章 运算符和条件结构 笔记

一.保存真或假,使用boolean变量      有两个值:true 真                  false 假 二.从控制台接受输入信息,通过创建扫描器     Scanner input new Scanner(System.in);     int age input.nextInt();//接收int类型     String name=input.next();//接收Strin类型 三.关系运算符     > < >= <= == != 四.==和=的区别  

JS一周游~(基础、运算符、条件语句)

一.基础篇 JavaScript 基于浏览器(客户端).基于(面向)对象{没有继承}.事件驱动(要有对象).脚本语言(灵活多变) 1.作用 表单的验证,减轻服务端的压力 添加页面动画效果 动态更改页面内容 Ajax网络请求( 异步 js and xml)无跳转刷新 2.组成部分 ECMAScript语法标准 语法,变量.数据类型,运算符,逻辑控制语句 ,关键字.保留字,对象 DOM文档对象类型操作 BOM文档对象类型操作 JS的执行原理 前台向服务器发起请求,请求服务器给我们数据,然后返回到前台

运算符与分支结构

运算符与分支结构 运算符 赋值运算符 用'='表示,左边只能是变量. 算术运算符 +.-.*:加.减.乘 /:除法运算,结果是浮点数 //:除法运算,结果是整数 %:求余 **:求幂 复合运算符 +=.-=.*=./=.//=.%=.**= 示例:a += b等价于a = a + b 关系运算符 >.>=.<.<=.==.!= 表达式:由操作数和运算符构成的式子 关系表达式:由操作数和关系运算符构成的式子 关系表达式是有值的:符合数学逻辑值为真(True).不符合数学逻辑值为假(F

python中if语句的使用(比较、逻辑、成员、运算符,语句结构)

一.if语句判断的定义 如果 条件满足,才能做某件事情, 如果 条件不满足,就做另外一件事情,或者什么也不做 正是因为有了判断,才使得程序世界丰富多彩,充满变化! 判断语句 又被称为 "分支语句",正是因为有了判断,才让程序有了很多的分支 Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句-- else: 执行语句-- 例子:如果天气晴朗,我们去室

再试条件结构

通过上次的练习,我已对单一的条件结构已经掌握纯熟,恰逢老师布置的周末作业中,有一道思考题,对条件结构知识点考究比较多,我忍不住有拿出来看看. 题目是:任意输入一个年 月 日 的日期,输出这是这一年的第几天.例如:1月1日 是这年的第1天,12月31日,是这年的365天或则是366天(因为有闰年会多一天) public class L4月27日思考题{ public static void main(String[]agrs){  int a=Integer.parseInt(agrs[0]) ;