标题: 各种运算符的比较及其用法和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;
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;