java学习3
Posted Zephyr丶J
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习3相关的知识,希望对你有一定的参考价值。
java学习3
运算符
算术运算符(自加1)
++可以出现在变量前,也可以出现在变量后
不管出现在变量前还是后,总之在++执行之后,变量的值一定会自加1
当++出现在变量后,会先做赋值运算,再自加1
例如:int m=10;int n=m++;// n=10
当++出现在变量前,会先进行自加1运算,再赋值
例子:int c=90;int d=80;
System.out.println(c++); //输出为90 //这里相当于赋值运算,先赋值输出,再自加1
System.ou.println(++d); //输出为81, 这里++再前,先自加1再输出
关系运算符
< > <= >= == !=
所有的关系运算符的运算结果都是布尔类型
不是true就是false,不可能是其他值
注意:关系运算符中如果有两个符号的话,两个符号之间不能有空格
逻辑运算符
&(逻辑与) (可以翻译成并且)
|(逻辑或)(可以翻译成或者)
!(逻辑非)(取反)
&&(短路与)
||(短路或)
重点:逻辑运算符两边要求是布尔类型,并且最终的运算结果也是布尔类型,这是逻辑运算符的特点
短路与&&和逻辑与&有什么区别?
首先这两个运算符没有任何区别,完全相同;只不过短路与&&会发生短路现象
什么是短路现象?什么时候会发生短路?
例如:int x=10; int y=11;
System.out.println(x>y & x>y++) //左边的x>y表达式结果已经是false了,其实整个表达式的结果已经确定是false了,按道理右边的表达式不应该执行
System.out.println(y); //12 说明右边的表达式执行了
但是如果用短路与,y的输出结果为11
短路现象:使用短路与的时候,当左边表达式为false的时候,右边表达式就不执行了,这种现象称为短路。
赋值运算符
1. 赋值运算符包括“基本赋值运算符”和“扩展赋值运算符”:基本的、扩展的
基本赋值运算符:=;
扩展赋值运算符:+=;-=;*=;%=;/=
+= 先加再赋值
*****************************
例如:byte x=100;
x=x+1;//编译器检测到右边int类型要赋值给左边的byte,所以编译不通过
x+=1; //编译通过,相当于x=(byte)(x+1);
重点:使用扩展赋值运算符的时候,永远不会改变运算结果类型
条件运算符(三目运算符)
语法格式:
布尔表达式?表达式1 : 表达式2
执行原理:
布尔表达式结果为true,表达式1的执行结果作为整个表达式的执行结果;反之用表达式2
boolean sex= true;
char c = sex?‘男’:‘女’; //c=‘男’
//前面的变量c的类型不能随便写,最终的计算结果为字符型,所以变量要用char类型
例子:sex = false;
char c = sex? 'nan':''nv''; //编译不通过,不兼容的类型;一个是字符,一个是字符串
System.out.println(sex? 'nan':''nv''); //通过,这里什么类型都可以放
字符串连接运算符
+ 运算符:
1. +运算符在java语言中的作用。
作用1:求和
作用2:字符串拼接
2.当+运算符两边都是数字类型的时候,求和
当+运算符两边的“任意一边”是字符串类型,那么这个+会自动进行字符串拼接操作,
3.字符串拼接结果还是一个字符串
在java中定义字符串型的变量:
String name = “jack”;
怎么把一个变量塞到一个字符串中:
(打印输出)口诀:加一个双引号,然后双引号之间加两个加号++,然后加号之间加变量
特殊题目
int i=10;
i=i++;
System.out.println(i); //输出为10;
第二行代码相当于:
int temp=i;
i++;
i=temp; //所以上面输出为10; 在C++中为11
int i=10;
i=++i;
System.out.println(i); //输出为11;
控制语句
在java中怎么接收键盘的输入?
public class KeyInput{
public static void main(String[] args){
//创建一个键盘扫描对象
java.util.Scanner s = new java.util.Scanner(System.in);
// 接收用户的输入,从键盘上接受一个int类型的数据
//代码执行到这里的时候,用户可以从键盘上输入一个整数,然后回车,
//回车之后变量userInputNum就有值了,保存的是你输入的数字
int userInputNum = s.nextInt(); //输入整数
String str = s.next(); //输入字符串
}
}
//或者在前面导入包:
import java.util.Scanner;
public class KeyInput2{
public static void main{String[] args}{
Scanner s = new Scanner(System.in);
System.out.println("欢迎使用小型迷你计算器");
System.out.print("请输入第一个数字:");
int num1 = s.nextInt();
System.out.print("请输入第二个数字:");
int num2 = s.nextInt();
System.out.println("他们的和为:" + (num1+num2));
}
}
控制语句包括:
选择语句(分支语句)(条件语句):if语句;switch语句
循环语句:for; while; do while
转向语句:break; continue;return
选择语句
语法格式:
第一种写法:
if(布尔表达式){
java语句;
java语句;
}
第二种写法:
if(布尔表达式){
java语句;
}else{
java语句;
}
第三种写法:
if(布尔表达式1){
java语句;
}else if(布尔表达式2){
java语句;
}}else if(布尔表达式3){
java语句;
}.... //主要看true发生在哪个分支上
第四种写法:
if(布尔表达式1){
java语句;
}else if(布尔表达式2){
java语句;
}}else if(布尔表达式3){
java语句;
}else{
java语句;
}
1. 对于if语句,在任何情况下只能有一个分支执行,且只要有一个执行,if语句就结束了
2. 四种语法中,凡是带有else分支的,一定可以保证会有一个分支执行,第一种和第三种没有else分支,这样可能没有分支执行
3. 分支当中的“java语句”只有一条,大括号可以省略
4. 控制语句和控制语句之间是可以嵌套的,但是嵌套的时候大家最好一个语句一个语句分析,不要冗杂在一起分析。
switch语句
语法格式:
switch(值){
case 值1:
java语句;
java语句;...
break;
case 值2:
java语句;
java语句;...
break;
case 值3:
java语句;
java语句;...
break;
default:
java语句;
}
以上是一个完整的switch语句:
其中:break语句不是必须的。default分支也不是必须的
switch语句支持int类型和String类型;JDK8之前只支持int;byte、short、char也可以在switch语句中,因为他们会自动进行类型转换。
switch语句中的值与值1,值2进行比较的时候使用“==”进行比较;
执行原理就是拿值与值1进行比较,如果相同就执行分支中的java语句,遇到break结束switch语句;如果不相同,就与值2进行比较....
注意:如果分支执行了,但是分支的最后没有break,就会发生case穿透现象,即跳过比较,直接执行下面所有case中的语句,直到遇到break;
所有的case都没有匹配,执行default
case可以合并,即:
case 1:case 2:case 3:
java语句;
break;
循环语句
for循环
语法机制:
for(初始化表达式;条件表达式;更新表达式){
循环体;//循环体由java语句构成
}
注意:条件表达式结果必须是一个布尔型,也就是true或者false
初始化表达式、条件表达式、更新表达式都不是必须的!!!
while循环
语法机制:
while(布尔表达式){
循环体;
}
执行原理:
判断布尔表达式的结果,如果为true就执行循环体。
while循环的循环次数:0~n次
do while
语法机制:
do{
循环体;
}while(布尔表达式);
注意:别漏掉分号
执行原理:先执行,在判断布尔表达式,满足条件继续执行
训话次数:1~n
转向语句
break;
continue;
return;
break
1.break和continue 一个单词称为一个完整的java语句。
2.break 翻译为折断、弄断
3.break用在:
第一个位置:switch语句中,用来终止switch语句的执行,防止case穿透现象
第二个位置:用在循环语句中,用来终止循环的执行
break语句会让离它最近的循环终止结束掉。
终止指定的循环(开发中很少见)
a: for(int k = 0; k < 2; k++){
b: for(int i = 0; i < 10; i++){
if(i == 5){
break a; // 终止指定的循环
}
System.out.println(i); //只输出一次0~4
}
}
continue
1.continue翻译为:继续,和break对比学习
2.continue终止当前本次循环,直接进入下一次循环继续执行
3.也可以指定循环 continue a;
以上是关于java学习3的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段
片段(Java) | 机试题+算法思路+考点+代码解析 2023