黑马程序员技术交流社区

标题: 各种运算符的比较及其用法和if语句的使用 [打印本页]

作者: liuguodong    时间: 2015-8-24 22:42
标题: 各种运算符的比较及其用法和if语句的使用
1:常见的算术运算符有哪些?
        + ,-,*,/,++,--
  +运算符的作用有哪些?
         正号,算数运算符,字符串的连接符
  除法和取余的区别?
        除法:任何两个整数进行相除其结果一定为整数,如果想得到小数必须使其任何一个为小数
        取余:取余运算的结果是余数.其结果只与运算符左边的数值有关与右边无关.任何整数%2其结果不是0就是1.
  ++和--的使用规则?
        单独使用时:
        a++,++a在单独出现执行时没有任何区别,都是自增1.(--同理)
        在表达式中出现时:
        a++是现参与表达式运算在自增1,++a是先自增1在参加运算.(--同理)
2:常见的赋值运算符有哪些?
        +=,-=,*=,/=,=
  +=运算的作用是什么?
        +=运算的作用是将其左边的数加右边的数然后将其值赋给左边 ,还包含强制数据类型的转换
  扩展的赋值运算符有什么特点?
        将其左边的数加右边的数然后赋值给左侧,而且还包含强制数据类型转换.
3:short s = 1; s = s + 1;有没有问题?如果有怎么解决?
        有问题 需要对s+1进行强制数据类型转换
   short s = 1; s += 1;有没有问题?如果有怎么解决?
        没有问题,自动进行数据类型的强制转换
4:常见的关系运算符有哪些?
        >,<,>=,<=,==
  关系运算符的结果有什么特点?
  不管关系表达式是简单还是复杂其结果一定是true或false
5:常见的逻辑运算符有哪些?
        &,|,^,!
  &和&&的区别是什么?
  &是逻辑与,例:表达式1&表达式2  不管表达式1是否为真,表达式2一定会执行
  &&是短路与, 例 表达式1&表达式2  只要表达式1为假,其表达式2不予执行
  |和||的区别是什么?
  |是逻辑或, 不管左侧表达式是true还是false ,其右侧表达式都会执行
  ||是短路或,只要左侧表达式结果是true,其右侧表达式不予执行
6:位运算符^的特点是什么?
        ^为异或运算符,两个表达式值相同时,其结果为false.两边表达式结果不同时其结果为true
7:如何实现对两个整数变量的值进行互换。
        有三种方法:
        a:中间变量法:
                int temp;
                int a = 1;
                int b = 2;
                        temp = a;
                        a = b;
                        b = temp;
        b:加减法
                int a = 1;
                int b = 2;
                        a = a + b;
                        b = a - b;
                        a = a - b;
        c:异或法
                int a = 1;
                int b = 2;
                        a = a ^ b;
                        b = a ^ b;
                        a = a ^ b;
8:三元运算符的格式是什么?
        (关系表达式)?表达式1:表达式2;
  执行流程是什么?
  如果关系表达式结果为true则执行表达式1 , 如果关系表达式结果为false则执行表达式2;
9:使用三元运算符完成如下练习
        比较两个数是否相等
        获取两个数中最大值
        获取三个数中最大值
        A:比较两个数是否相等
                int b = 1;
                int c = 2;
                boolean  a = (b==c)?true:false;  
                System.out.println(a);
        B:获取两个数中最大值
                int b = 1;
                int c = 2;
                int max =  (b > c)?b:c;
                System.out.println(max);
        C:获取三个数中最大值
                int a = 3;
                int b = 1;
                int c = 2;
                int max = (a > b)?(a>c?a:c):(b>c?b:c);
                System.out.println(max);
10:流程控制语句有几种?
        * 顺序结构
        * 选择结构
        * 循环结构
11:if语句的格式有几种?注意事项是什么?分别在什么时候使用?
        三种:
        A: if(关系表达式) {
                语句体;
        }
        注意事项:if(关系表达式)后面可以不用加大括号,只运行紧挨if条件的一行有效语句;int x = 10;(不可以,这是两条语句构成);
        但是我们要求要写大括号.如果有大括号就没有分号如果有分号就没有大括号;if(关系表达式)中的值一定为boolean
        B:if(关系表达式) {
                语句体1;
        }else {
                语句体2;
        }
        注意事项:else后面没有关系表达式,只有if后面跟着;
        C:if(关系表达式) {
                语句体1;
        }else if(关系表达式) {
                语句体2;
        }else {
                语句体3;
        }
        注意事项:最后一个else语句可以省略,但建议不要省略.可以对范围外的数据进行错误提示.
        分别在什么时候使用:
        if在判断某一段语句是否执行时使用.
        if-else 在某一条件下执行语句1,在不符合条件时执行另一段语句2;
        if-else-if语句在判断多个不同范围条件时所执行不同语句是使用.
12:看程序写结果:请自己独立分析,先不要编译运行。
第一题
int x = 1,y = 1;

if(x++==2 & ++y==2)
{
        x =7;
}
System.out.println("x="+x+",y="+y);  
x = 2,y = 2
---------------------------------------------------
第二题
int x = 1,y = 1;

if(x++==2 && ++y==2)
{
        x =7;
}
System.out.println("x="+x+",y="+y);
x = 2,y = 1;
---------------------------------------------------
第三题
int x = 1,y = 1;

if(x++==1 | ++y==1)
{
        x =7;
}
System.out.println("x="+x+",y="+y);
x = 7, y = 2
---------------------------------------------------
第四题
int x = 1,y = 1;

if(x++==1 || ++y==1)
{
        x =7;
}
System.out.println("x="+x+",y="+y);
x = 7;y = 1
---------------------------------------------------
第五题
boolean b = true;

if(b==false)
        System.out.println("a");
else if(b)
        System.out.println("b");
else if(!b)
        System.out.println("c");
else
        System.out.println("d");
b
---------------------------------------------------

13:编写代码实现如下内容:if语句实现 switch-case
考试成绩分等级。
        90~100        A等。
        80-89        B等。
        70-79        C等。
        60-69        D等。
        60以下        E等。
请根据给定成绩,输出对应的等级。
import java.util.Scanner;
class Tesr {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int score = sc.nextInt();
                if(score>100||<0) {
                        System.out.println("输入成绩不符合规定!");
                }else if(score >= 90) {
                        System.out.println("优秀");
                }else if(score >= 80) {
                        System.out.println("良好");
                }else if(score >= 70) {
                        System.out.println("中等");
                }else if(score >= 60) {
                        System.out.println("及格");
                }else {
                        System.out.println("不及格");
                }
        }
}
import java.util.Scanner;
class Tesr {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int score = sc.nextInt();
                int grade = score/10;
                switch(grade) {
                        case 10:
                        case 9:
                                System.out.println("优秀");
                                break;
                        case 8:
                                System.out.println("良好");
                                break;
                        case 7:
                                System.out.println("中等");
                                break;
                        case 6:
                                System.out.println("及格");
                                break;
                        case 5:
                        case 4:
                        case 3:
                        case 2:
                        case 1:
                        case 0:
                                System.out.println("不及格");
                                break;
                        delault:
                                System.out.println("输入成绩格式不正确");
                                break;
               
                }
        }
}
14:switch语句的格式?针对格式的解释?以及注意事项?
        switch(表达式) {
                case 常量:
                        语句1;       
                        break;
                case 常量:
                        语句2;       
                        break;
                        *
                        *
                        *
                delault:
                        语句n;
                        break;
        }
        注意事项:
        case 后面必须跟常量,否自编译不通过.并且case后面的常量必须不同;
        switch 可以使用的基本数据类型:byte, short,char,int
                                         引用数据类型:枚举 JDK 1.5版本后使用
                                                                  String JDK1.7版本后使用
        default放在最后可以不加break因为程序执行到大括号结束.
        程序执行过程中default语句最后执行;
        case语句后面需写break因为如果不写会出现语句穿透现象(可以省略但是不建议);
15:看程序,分析下面程序的结果:
int x = 2,y=3;

switch(x)
{
        default:
                y++;
        case 3:
                y++;
                break;
        case 4:
                y++;
}

System.out.println("y="+y);
y = 5
16:根据输入的值,判断是星期几。(分别用if语句和switch语句实现)
        输入:1         
        输出:星期1               
import java.util.Scanner;
class Tesr {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int num = sc.nextInt();
                if(num==1) {
                        System.out.println("周一");
                }else if(num==2) {
                        System.out.println("周二");
                }else if(num==3) {
                        System.out.println("周三");
                }else if(num==4) {
                        System.out.println("周四");               
                }else if(num==5) {
                        System.out.println("周五");
                }else if(num==6) {
                        System.out.println("周六");
                }else if(num==7) {
                        System.out.println("周日");
                }else {
                        System.out.println("输入数字不匹配");
                }
        }
}

import java.util.Scanner;
class Tesr {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int num = sc.nextInt();
                switch(num) {
                        case 7:
                                System.out.println("周天");
                                break;
                        case 6:
                                System.out.println("周六");
                                break;
                        case 5:
                                System.out.println("周五");
                                break;
                        case 4:
                                System.out.println("周四");
                                break;
                        case 3:
                                System.out.println("周三");
                                break;
                        case 2:
                                System.out.println("周二");
                                break;
                        case 1:
                                System.out.println("周一");
                                break;
                        delault:
                                System.out.println("输入天数格式不正确");
                                break;
               
                }
        }
}
作者: 七了个七    时间: 2015-8-24 23:53
6666呵呵哒
作者: 我来了    时间: 2015-8-25 11:00
同学,掌握的不错啊,加油!
作者: 耀阳圣尊    时间: 2015-8-25 14:40
总结的不错。赞一个
作者: 旦夕    时间: 2015-8-25 17:05
谢谢分享哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2