运算符
算术运算符
-
+:加法运算 数值+数值 数值+字符 连接 字符串+字符串 字符串+数值
-
-: 减法运算
-
*:乘法运算
-
/:除法运算
-
%:取余
-
++:自增
-
–:自减
ps.单独的++ --,++x x++没有区别;
在混合运算中,++在前 先自增后运算,++在后先运算后自增
int x=5; x++;//x=x+1 ++x;//x=+1 System.out.println (x );//7
int x=5; int y=x++ + 1; //在混合运算时,++在后 先运算 后++ int y=++x +1;//在混合运算时,++在前 先++ 后运算 System.out.println (y );//6 7 System.out.println (x );//6 6
关系比较运算符
< ,>,<=,>=只能进行数值之间的比较;
==,!=能进行数值之间的比较,还可以进行逻辑值与逻辑值之间的比较、引用类型之间的比较。
逻辑运算符
进行逻辑值与逻辑值之间的运算。
& (逻辑与):所有表达式为true,结果为true;出现第一个false,继续执行后面的表达式,结果为false。
&&(短路与):所有表达式为true,结果为true;出现第一个false,整个表达式短路,结果为false。
|(逻辑或):表达式中有一个为true,结果为true;出现第一个true,继续执行后面的表达式,结果为true。
||(短路与):表达式中有一个为true,结果为true;出现第一个true,整个表达式短路,结果为true。
!=(逻辑非)
^(异或):相同为false,不同为true。
赋值运算符
=:把右边的值赋给左边。
数据类型 变量 = 值; (注意数据类型,注意区分= ,==的区别)
+=,-=,*=,/=,%= 赋值运算(会隐式的数据类型转换)
public static void main(String[] args) {
/*
= 右边的值赋给左边 注意数据类型 经常写== 写成=
+=
-=
/=
%=
*/
int a = 10;
byte b = (byte) a;
a+=b;
System.out.println (a);
short s=3;
//s=s+2; //s= s(short类型)+ 2(int)
s += 2; //隐式转换
}
条件运算符
结果 =(条件表达式)? 成立执行:不成立执行
int score=70;
String res= (score>=60) ? "及格":"不及格";
System.out.println (res);
位运算符
bit位进行运算。
移位
<< 左移 >>右移 >>> 无符号右移
public static void main(String[] args) {
int a=4;
//0000 0100 4
System.out.println (a<<1);//0000 1000 8
int b=-6;
System.out.println (b>>1 );//3 -3 有符号的移动 符号不变的
System.out.println (b>>>1 );//3 2147483645 无符号右移 注意负数 移位后高位补0
}
&:二进制bit位&运算,只有1&1时结果是1,否则是0。
|:二进制位进行 | 运算,只有0 | 0时结果是0,否则是1。
^:相同结果是0;不相同结果是1。
~:正数取反,各二进制码按补码各位取反;负数取反,各二进制码按补码各位取反。
控制台输入
控制台输入:在基础语法学习时,交互式的向程序中输入内容,实际程序中用不到。
public static void main(String[] args) {
//在java程序中创建出一个输入对象
Scanner s=new Scanner ( System.in );
System.out.println ("请输入学号:" );
int num=s.nextInt ();//输入一个整数,程序执行到nextInt()时,进入阻塞状态,按回车键表示输入完成
System.out.println ("请输入姓名:" );
String name =s.next ();
System.out.println (num );
System.out.println (name );
}
流程控制语句
条件语句
if选择语句
if(条件表达式){条件成立执行}
if(条件表达式){条件成立执行} else {条件不成立执行}
if(条件表达式){条件成立执行} else if (条件表达式){条件成立执行}······
if(条件表达式){条件成立执行} else if (条件表达式){条件成立执行}··else{所有条件都不成立时执行}
public static void main(String[] args) {
int num=2;
if(num>3){
System.out.println("num>3");
}
/*
if(num>3)
有效作用范围只有紧挨着的一行
不是if的作用范围了
*/
if (num>3)
System.out.println ("num>3" );
else
System.out.println ("11111" );
switch语句
switch
多路选择,
一般用switch能实现的功能,用 if else语句都可以实现,
区别? 什么时候用if 什么时候用switch
选项比较固定:一周有7天 一年12个月
switch(表达式){
case 值1:代码块;[break];
case 值2:代码块;[break];
case 值n:代码块;[break];
default:默认代码块;
}
//传入的表达式值 可以是byte short int char 枚举 String
int w= //初始化一个w值;
switch(w){
case 1: //case 后面只能是字面量,不能重复的
System.out.println ("星期一" );
break;//添加break 终止,是否添加break,根据实际需要而定
case 2:
System.out.println ("星期二" );
break;
case 3:
System.out.println ("星期三" );
break;
case 4:
System.out.println ("星期四" );
break;
default://所有选项都不匹配时,执行default,否则跳出
System.out.println ("无效日期" );
}
循环语句
满足某种条件,一直重复做某件事情。
循环语法格式:
循环变量初始化,进入循环条件,循环体(循环中要执行的代码),循环变量的更新
循环方式:
while(进入循环的条件){ //while先条件判断,不成立就不能进入循环
循环体;
}
do{ //先执行,后判断,即使条件不成立,也会执行一次
循环体;
}while(循环条件);
for(定义变量1;循环条件2;变量赋值4){
循环体3
}
先执行1(只执行1次)
再执行条件判断2(多次)
循环3(多次)
变量赋值4(多次)
//while(true) 和 for(;;)的区别
while(布尔值)
{
执行不知道循环次数
}
for循环一般用于执行循环已知的
for(int i=0;i<5;i++){
System.out.println(i)
}
break和continue
break 在switch,循环中使用,表示结束当前的switch
break+ 循环标记 结束指定的循环
continue 在循环中使用 表示跳过本次循环
/*在内层循环中,结束外层循环*/
out:for(int i=1;i<=4;i++){ //为循环定义一个标记
for(int j=1;j<=5;j++){
if(j==3){
break out;
}
System.out.print("*");
}
System.out.println();
}