1:A:常见的算术运算符有哪些?
A:+,-,*,/,%,++,--B:+运算符的作用有哪些?
B:+的用法
a:加法
b:正号
c:字符串(string)连接符
C:除法和取余的区别?
C:/和%的区别
数据做除法操作的时候,/取得是商,%取得是余数
D:++和--的使用规则?
D:++和--的用法
a:他们的作用是自增或者自减
b:使用
**单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。
**参与操作使用
放在操作数的前面:先自增或者自减,再参与操作
int a = 10;
int b = ++a;
放在操作数的后面:先参与操作,再自增或者自减
int a = 10;
int b = a++;
2:A:常见的赋值运算符有哪些?
A:=,+=,-=,*=,/=,%=等B:+=运算的作用是什么?
B:t += 1//t = t+1
C:扩展的赋值运算符有什么特点?
C:隐含了自动强制转换。
面试题:
short s = 1;
s = s + 1; //short类型转——int类型转——short类型(损失精度)
short s = 1;
s += 1; //强制转换(s =(s的数据类型)(s+1))
请问上面的代码哪个有问题?
3:short s = 1; s = s + 1;有没有问题?如果有怎么解决? //有;加入强制转换,在day02中有格式
short s = 1; s += 1;有没有问题?如果有怎么解决?//无;4:A:常见的关系运算符有哪些?
A:==,!=,>,>=,<,<=B:关系运算符的结果有什么特点?
B:无论运算符两端简单还是复杂最终结果是boolean类型。
5:A:常见的逻辑运算符有哪些?
A:&(与),|(或),^(异或),!(非),&&,||&:有false则false(和的关系)
|:有true则true(或的关系)
^:相同则false,不同则true。
情侣关系。(男女才能一对,才ture。)
!:非true则false,非false则true
B:&和&&的区别是什么?
B:&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
C:|和||的区别是什么?
C:||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。6:A:位运算符^的特点是什么?
A:一个数据针对另一个数据位异或两次,该数不变7:如何实现对两个整数变量的值进行互换。
//方式1:使用第三方变量(开发中用的)
int c = a;
a = b;
b = c;
System.out.println("a:"+a+",b:"+b);
System.out.println("------------");
//方式2:用位异或实现(面试用)
//左边:a,b,a
//右边:a ^ b
a = a ^ b;
b = a ^ b; //a ^ b ^ b = a
a = a ^ b; //a ^ b ^ a = b
System.out.println("a:"+a+",b:"+b);
//方式2:用位异或实现(面试用)
//左边:a,b,a
//右边:a ^ b
a = a ^ b;
b = a ^ b; //a ^ b ^ b = a
a = a ^ b; //a ^ b ^ a = b
System.out.println("a:"+a+",b:"+b);
//方式2:用位异或实现(面试用)
//左边:a,b,a
//右边:a ^ b
a = a ^ b;
b = a ^ b; //a ^ b ^ b = a
a = a ^ b; //a ^ b ^ a = b
System.out.println("a:"+a+",b:"+b);
8:A:三元运算符的格式是什么?
A:比较表达式?表达式1:表达式2;B:执行流程是什么?
B:首先计算比较表达式的值,看是true还是false。
如果是true,表达式1就是结果。
如果是false,表达式2就是结果。
9:使用三元运算符完成如下练习
A:比较两个数是否相等
int x = 100;
int y = 200;
int z = ((x == y)? x: y);
B:获取两个数中最大值
int x = 100;
int y = 200;
int z = ((x > y)? x: y);
C:获取三个数中最大值
int a = 10;
int b = 30;
int c = 20;
//方法一,分两步:
//A:先比较a,b的最大值
//B:拿a,b的最大值在和c进行比较
int temp = ((a > b)? a: b);
int max1 = ((temp > c)? temp: c);
System.out.println("max1:"+max1);
//方法二,一步搞定
//int max2 = (a > b)?((a > c)? a: c):((b > c)? b: c);
10:A:流程控制语句有几种?
A:(1)顺序结构从上往下,依次执行(2)选择结构按照不同的选择,执行不同的代码
(3)循环结构做一些重复的代码
11:if语句的格式有几种?注意事项是什么?三元运算符和if语句第二种格式的关系
(1)三种格式A:格式1
if(比较表达式) {
语句体;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体
如果是false,就不执行语句体
B:格式2
if(比较表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体1
如果是false,就执行语句体2
C:格式3
if(比较表达式1) {
语句体1;
}else if(比较表达式2){
语句体2;
}
...
else {
语句体n+1;
}
执行流程:
判断比较表达式1的值,看是true还是false
如果是true,就执行语句体1
如果是false,就继续判断比较表达式2的值,看是true还是false
如果是true,就执行语句体2
如果是false,就继续判断比较表达式3的值,看是true还是false
...
如果都不满足,就执行语句体n+1
(2)注意事项
A:比较表达式无论简单还是复杂,结果是boolean类型
B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。
建议:永远不要省略。
C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。
D:else后面如果没有if,是不会出现比较表达式的。
E:三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。
(3)所有的三元运算符能够实现的,if语句的第二种格式都能实现。
反之不成立。
如果if语句第二种格式控制的语句体是输出语句,就不可以。
因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。
12:看程序写结果:请自己独立分析,先不要编译运行。
第一题int x = 1,y = 1;
if(x++==2 & ++y==2) //++在操作符后面,x不等于2,然后在++x=2,前面为false;++在操作符前面,++y=2,后面为true;
{ //与运算一false全false
x =7; //不执行
}
System.out.println("x="+x+",y="+y); //x = 2,y = 2
---------------------------------------------------
第二题
int x = 1,y = 1;
if(x++==2 && ++y==2) //&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
{
x =7;
}
System.out.println("x="+x+",y="+y); //x=2,y=1
---------------------------------------------------
第三题
int x = 1,y = 1;
if(x++==1 | ++y==1) //前面为false,后面为true
{ //或运算一true全true
x =7; //执行
}
System.out.println("x="+x+",y="+y); //x=7,y=2
---------------------------------------------------
第四题
int x = 1,y = 1;
if(x++==1 || ++y==1) //前面为false,后面不执行
{
x =7; //执行
}
System.out.println("x="+x+",y="+y); //x=7,y=1
---------------------------------------------------
第五题
boolean b = true;
if(b==false) //false
System.out.println("a");
else if(b) //true 循环结束
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");
//b
---------------------------------------------------
13:编写代码实现如下内容:if语句实现
考试成绩分等级。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下 E等。
请根据给定成绩,输出对应的等级。
/*
*===============================================================================
* Program: Grades
* Keyboard entry a result, and the level of output results.
* 90-100 excellent
* 80-90 good
* 70-80 fine
* 60-70 pass
* 0-60 fail
*
*
* About:
* Date:2017/06/02
* @author: Bruce_You 173428680@qq.com
* @version: 1.0
*===============================================================================
*/
package text;
import java.util.Scanner;
public class Grades {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//
System.out.println("Please enter your grades。");
// create a keyboard entry object
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score<0 || score>100) {
System.out.println("Your input is wrong。");
}else if(score>=90 && score<=100) {
System.out.println("excellent");
}else if(score>=80 && score<90) {
System.out.println("good");
}else if(score>=70 && score<80) {
System.out.println("fine");
}else if(score>=60 && score<70) {
System.out.println("pass");
}else {
System.out.println("fail");
}
System.out.println();
System.out.println("The author:");
System.out.println("Bruce_You");
}
}
/*
* ##################################################################
* ########################## End Of Grades #########################
* ##################################################################
*/