JAVA_Day_03(算术 赋值 关系 逻辑 三元运算符 if语句 )

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 [email protected]
 * @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 #########################
* ##################################################################
*/

你可能感兴趣的:(Notes)