文章目录

  • 1 运算符
    • 算术运算符
    • 1.2 算术运算符
      • 1.3字符的+操作
    • 1.4字符串的+操作
  • 2 赋值运算符
    • 2.1赋值运算符
  • 3 自增自减运算符
    • 3.1 自增自减运算符
  • 4 关系运算符
  • 5 逻辑运算符
    • 5.1 逻辑运算符
    • 5.3 短路运算符
  • 6 三元运算符
    • 6.1 三元运算符
  • 数据输入
    • 数据输入概述
    • Scanner使用的基本步骤
  • 分支语句
  • 流程控制
    • 流程控制语句分类
    • 顺序结构
  • if语句
    • if语句格式1
    • if语句格式2
    • if语句格式3

1 运算符

算术运算符

运算符: 对常量或者变量进行操作的符号
表达式: 用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式.
不同运算符连接的表达式体现的是不同类型的表达式
举例:

 int  a = 10;int  b = 20;int c = a+b;

+: 是运算符,并且是算术运算符
a+b: 是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

1.2 算术运算符

符号 作用 说明
+加 参看小学一年级
-减 参看小学一年级
*乘 参看小学二年级,与“×”相同
/ 除 参看小学二年级,与“÷”相同
%取余 获取的是两个数据做除法的余数
注意:
/和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

 int a = 10; int b = 3;System.out.println(a / b); // 输出结果3System.out.println(a % b); // 输出结果1
/**
算数运算符
*/
public class OperatorDemo01{public static void main (String[] args){//定义两个变量int a = 4;int b = 3;System.out.println(a+b);System.out.println(a-b);System.out.println(a*b);System.out.println(a/b);System.out.println(a%b);//除法得到的是商,取余得到的是余数//整数相除只能得到整数,要想得到小数,必须有浮点数参与System.out.println(6.0 / 4);}
}

1.3字符的+操作

char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值:
‘a’ – 97 a-z是连续的,所以’b’对应的数值是98,'c’是99,依次递加
‘A’ – 65 A-Z是连续的,所以’B’对应的数值是66,'C’是67,依次递加
‘0’ – 48 0-9是连续的,所以’1’对应的数值是49,'2’是50,依次递加

算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。
整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型
等级顺序:byte,short,char --> int --> long --> float --> double

/**
字符+的操作
*/
public class OperatorDemo02{public static void main(String[] args){//定义两个变量int i = 10;char c = 'A';//'A'的值是65c = 'a';//'a'的值是97c = '0';//'0'的值是48System.out.println(i + c);//char j = i+c;//char类型会被自动提升为int类型int j = i+c;System.out.println(j);   //int k = 10+13.14;double d = 10+13.14;}
}

1.4字符串的+操作

当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。
在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执 行。

/**
字符串+操作
*/
public class OperatorDemo03{public static void main(String[] args){System.out.println("itheima"+ 666); // 输出:itheima666System.out.println(1 + 99 + "年黑马"); // 输出:100年黑马 System.out.println(1 + 2 + "itheima" + 3 + 4); // 输出:3itheima34 // 可以使用小括号改变运算的优先级 System.out.println(1 + 2 + "itheima" + (3 + 4)); // 输出:3itheima7}
}

2 赋值运算符

2.1赋值运算符

赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量。
符号 作用 说明
= 赋值 a=10,将10赋值给变量a
+= 加后赋值 a+=b,将a+b的值给a
-= 减后赋值 a-=b,将a-b的值给a
= 乘后赋值 a=b,将a×b的值给a
/= 除后赋值 a/=b,将a÷b的商给a
%= 取余后赋值 a%=b,将a÷b的余数给a
注意:
扩展的赋值运算符隐含了强制类型转换。

/**赋值运算符*/
public class OperatorDemo04{public static void main(String[] args){//把10赋值给int类型的变量iint i = 10 ; System.out.println("i="+i);//+= 把左右两边数据做加法操作,结果赋值给左边i+= 20;System.out.println("i="+i);//注意:扩展的赋值运算符底层隐含了强制类型转换short s = 10;s += 20;//s=(short)(s+20);System.out.println("s="+s);}
}

3 自增自减运算符

3.1 自增自减运算符

符号 作用 说明
++ 自增 变量的值加1
– 自减 变量的值减1
注意事项:
++和-- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者–。
参与操作的时候,如果放在变量的前边,先拿变量做++或者–,后拿变量参与操作。
最常见的用法:单独使用。

/** 自增自减运算符*/
public class OperationDemo05 {public static void main(String[] args) {//定义变量int i = 10;System.out.println("i="+i);//单独使用
//      i++;
//      ++i;
//      System.out.println("i="+i);//       参与操作使用
//      int j= ++i;int j = i++;System.out.println("i="+i);System.out.println("j="+j);}
}

4 关系运算符


注意事项:
关系运算符的结果都是boolean类型,要么是true,要么是false。


public class OperatorDemo05 {public static void main(String[] args) {//定义变量int i=10;int j = 20;int k = 10;//==System.out.println(i==j);System.out.println(i==k);System.out.println("----------");//!=System.out.println(i != j);System.out.println(i != k);System.out.println("----------");//>System.out.println(i>j);System.out.println(i>k);System.out.println("----------");//>=System.out.println(i>=j);System.out.println(i>=k);System.out.println("----------");//<System.out.println(i<j);System.out.println(i<k);System.out.println("----------");//<=System.out.println(i<=j);System.out.println(i<=k);System.out.println("----------");//误把==写为 =//将右值赋给左System.out.println(i=j);}
}

5 逻辑运算符

5.1 逻辑运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断 的结果是 true 或 false。

/* * 逻辑运算符*/
public class OperatorDemo06 {public static void main(String[] args) {//定义变量int i= 10;int j = 20;int k = 30;//& 有false则falseSystem.out.println((i > j) & (i > k));//false & falseSystem.out.println((i < j) & (i > k));//true & falseSystem.out.println((i > j) & (i < k));//false & trueSystem.out.println((i < j) & (i < k));//true &trueSystem.out.println("------------");//| 有true则trueSystem.out.println((i > j) | (i > k));//false | falseSystem.out.println((i < j) | (i > k));//true | falseSystem.out.println((i > j) | (i < k));//false | trueSystem.out.println((i < j) | (i < k));//true | trueSystem.out.println("------------");//^  相同则false 不同则trueSystem.out.println((i > j) ^ (i > k));//false ^ falseSystem.out.println((i < j) ^ (i > k));//true ^ falseSystem.out.println((i > j) ^ (i < k));//false ^ trueSystem.out.println((i < j) ^ (i < k));//true ^ trueSystem.out.println("------------");//! 结果相反System.out.println((i > j));//falseSystem.out.println(!(i > j));//true}
}

5.3 短路运算符

符号 作用 说明
&& 短路与 作用和&相同,但是有短路效果
|| 短路或 作用和|相同,但是有短路效果

在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都 计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式 将不再参与运算。
注意事项:

  • 逻辑与&,无论左边真假,右边都要执行。
  • 短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
  • 逻辑或|,无论左边真假,右边都要执行。
  • 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。

最常用的逻辑运算符: &&,||,!

/**短路逻辑运算 */
public class OperatorDemo07 {public static void main(String[] args) {//定义变量int i= 10;int j = 20;int k = 30;//&& 有false则falseSystem.out.println((i > j) && (i > k));//false && falseSystem.out.println((i < j) && (i > k));//true && falseSystem.out.println((i > j) && (i < k));//false && trueSystem.out.println((i < j) && (i < k));//true && trueSystem.out.println("------------");//|| 有true则trueSystem.out.println((i > j) || (i > k));//false || falseSystem.out.println((i < j) || (i > k));//true || falseSystem.out.println((i > j) || (i < k));//false || trueSystem.out.println((i < j) || (i < k));//true || trueSystem.out.println("------------");//&&和&
//      System.out.println((i++ >100 )&(j++ >100));//false& false //输出 false i = 11 j=21System.out.println((i++ > 100)&& (j++>100));//false && false //输出 false i=11 j=20System.out.println("i="+i);System.out.println("j="+j);}

6 三元运算符

6.1 三元运算符

  • 格式 关系表达式?表达式1:表达式2;
  • 范例 a>b?a:b;
    计算规则:
    首先计算关系表达式的值
    如果值为true,表达式1的值就是运算结果
    如果值为false,表达式2的值就是运算结果
/** 三元运算符*/
public class OperatorDemo08 {public static  void main(String[] args) {//定义两个变量int a = 10;int b = 20;//获取两个数据中的较大值int max = a>b?a:b;//输出结果System.out.println("max="+max);}
}

案例两只老虎
1、需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是 否相同。
分析:
1.定义两个变量用于保存两只老虎的体重,单位为kg,这里仅仅体现数值,int weight1=180;
int weight2=200;
2.用三元运算符来实现体重判断,体重相同返回true否则返回false
(weight1 == weight2)?true:false;
3.输出结果

/** 两只老虎比较体重动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是 否相同。*/
public class OperatorTest01 {public static void main(String[] args) {//定义两个不同变量,分别代表两只老虎的体重,单位为kgint weight1 =180;int weight2 =200;//三元运算比较;两只老虎的体重,相同true,不同falseboolean b =weight1 == weight2?true:false;//输出结果System.out.println("两只老虎比较结果:"+b);}
}

案例:三个和尚
2、需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个 和尚的最高身高
分析:
1.定义三个变量保存三个和尚的身高
int height1=150;
int height2=210;
int height3=165;
2.用三元运算符获取前两个和尚较高的身高值,并用临时身高变量保存起来,
height1>height2?height1:height2;
3,用三元运算符取临时身高和第三个身高比较,并用最大身高变量保存
tempHeight>height3?tempHeight:height3:
输出结果

/** 需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个 和尚的最高身高。*/
public class OperatorTest02 {public static void main(String[] args) {//定义三个不同变量,用来存储三个和尚的身高int height1 = 150;int height2 = 210;int height3 = 165;//用三元运算符将前两个身高进行比较,并用临时身高值保存较高的那个身高int temp = height1>height2?height1:height2;//用三元运算符将保存的临时身高值和第三个和尚进行比较int max = temp>height3?temp:height3;//输出结果System.out.println("三个和尚中最高身高为:"+max);}
}

数据输入

数据输入概述

Scanner使用的基本步骤

1.导包

import java.util.Scanner;

2.创建Scanner对象

//创建Scanner对象,sc表示变量名,其他均不变
Scanner sc = new Scanner(System.in);

3.接收数据

//表示将键盘录入的值作为int数据返回
int i =  sc.nextInt( );
/** 数据输入* 导包
*   import java.util.Scanner;
*创建Scanner对象
*   //创建Scanner对象,sc表示变量名,其他均不变
*   Scanner sc = new Scanner(System.in);
*接收数据
*   //表示将键盘录入的值作为int数据返回
*   int i =  sc.nextInt( );*/
import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {//创建对象Scanner sc = new Scanner(System.in);//接收数据int i = sc.nextInt();//输出结果System.out.println("i="+i);}
}

案例三个和尚升级
需求:一座寺庙里住着三个和尚,他们的身高必须经过测量得出,请用程序实现获取这三个和尚的最高身高
分析
1.身高未知,采用键盘录入实现,首先导包,然后创建对象.
import java.util.Scanner;
Scanner sc = newScanner(System.in);
2.键盘录入三个身高分别赋值给三个变量
int height1 = sc.nextInt();
int height2= sc.nextInt();
int height3 = sc.nextInt();
3.用三元运算符获取前两个和尚较高的身高,并用临时身高变量保存起来
height1 >height2 ?height1:height2;
用三元运算符获取临时身高值第三个和尚身高较高值,并用最大身高变量保存
temp>height3?temp:height3;

/** 数据输入 三个和尚升级*/
import java.util.Scanner;
public class ScannerTest01 {public static void main(String[] args) {//创建变量,三个和尚身高Scanner sc = new Scanner(System.in);//键盘录入三个身高分别赋值给三个变量System.out.println("第一个和尚的身高:");int height1 = sc.nextInt();System.out.println("第二个和尚的身高:");int height2 = sc.nextInt();System.out.println("第三个和尚的身高:");int height3 = sc.nextInt();//用三元运算符获取两个和尚的身高int temp = height1 >height2?height1:height2;//用三元运算符临时数据和第三比较int max = temp>height3?temp:height3;//输出System.out.println("三个和尚最高的"+max+"cm");}
}

分支语句

流程控制

流程控制语句分类

  • 顺序结构
  • 分支结构(if, switch)
  • 循环结构(for, while, do…while)

顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的

/** 顺序结构*/
public class OrderDemo {public static void main(String[] args) {System.out.println("开始");System.out.println("语句A");System.out.println("语句B");System.out.println("语句C");System.out.println("结束");}
}

if语句

if语句格式1

格式:
if(关系表达式){
语句体;
}

执行流程:
1.首先计算关系表达式的值
2.如果关系表达式的值为true就执行语句体
3.如果关系表达式的值为false就不执行语句体
3.继续执行后面的语句内容

/** if语句练习*/
public class IfDemo01 {public static void main(String[] args) {System.out.println("开始");//定义变量int a =10;int b = 20;//判断ab的两个的值是否相等,如果相等输出a等于bif(a==b) {System.out.println("a等于b");}//判断ac是否相等int c =10;if(a==c) {System.out.println("a等于c");}System.out.println("结束");}
}

if语句格式2

格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
1.首先计算关系表达式的值
2.如果关系表达式的值为true就执行语句体1
3.如果关系表达式的值为false就执行语句体2
4.继续执行后面的内容

/** if语句练习2* */
public class IfDemo02 {public static void main(String[] args) {//定义两个变量int a =10;int b=20;//if语句判断a与b是否相同,true输出a与b相同,false输出a与b不同if(a == b) {System.out.println("a等于b");}else {System.out.println("a不等于b");}System.out.println("结束");}
}

案例:奇偶数
需求:任意给出一个整数,请用程序 实现判断整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数
分析:
1.为了体现任意给出一个整数,采用键盘录入一个数据
使用键盘录入功能需要导包
import java.util.Scanner;
创建对象
Scanner sc = new Scanner(System.in);
接收数据
int number = sc.nextInt();
2.判断整数是偶数还是奇数要分两种情况进行判断使用ifelse结构
3.判断是否是偶数需要用到取余运算number%2 ==0;
4.根据判定情况,在控制台输出对应内容

/** 奇偶数判断*/
import java.util.Scanner;
public class IfTest01 {public static void main(String[] args) {//创建对象Scanner sc = new Scanner(System.in);//接收数据System.out.println("输入整数判断奇偶数的数据:");int number = sc.nextInt();//判断是否为偶数if(number%2==0) {System.out.println(number+"输入的是偶数");}else {System.out.println(number+"输入的是奇数");}}
}

if语句格式3

格式:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}else{
语句体n+1;
}
执行流程:
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④… ⑤如果没有任何关系表达式为true,就执行语句体n+1。

/** if语句格式三*/
import java.util.Scanner;
public class IfDemo03 {public static void main(String[] args) {//需求:键盘录入一个星期数(1,2,3,..7),输出对应的星期//创建Scanner sc = new Scanner(System.in);System.out.println("输入一个星期数");//接收数据int week = sc.nextInt();if(week ==1 ) {System.out.println("星期一");}else if(week == 2) {System.out.println("星期二");}else if(week ==3) {System.out.println("星期三");}else if(week == 4) {System.out.println("星期四");}else if(week ==5) {System.out.println("星期五");}else if(week == 6) {System.out.println("星期六");}else if(week == 7) {System.out.println("星期日");}else {System.out.println("输入错误");}}
}

案例:考试奖励
需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明 的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出
分析:
1.

分析

/** 考试奖励* 需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,* 假如你可以控制小明 的得分,用程序实现小明到底该获得什么样的礼物, 并在控制台输出* 奖励:* 95-100 山地自行车* 90-94 游乐场玩一次* 80-89 变形金刚一个* 80以下 胖揍一顿*/
import java.util.Scanner;
public class IfTest02 {public static void main(String[] args) {//小明考试成绩未知,通过键盘录入Scanner sc = new Scanner(System.in);System.out.println("输入小明的的成绩");int score = sc.nextInt();//奖励判断if(score>100 || score<0) {System.out.println("输入成绩错误");}else if(score>=95 && score<=100) {System.out.println("奖励山地自行车一辆");}else if(score>=90 && score<=94) {System.out.println("奖励游乐场玩一次");}else if(score>=80 && score<=89) {System.out.println("奖励变形金刚一个");}else {System.out.println("胖揍一顿");}}
}

笔记02-java基础语法相关推荐

  1. 02 Java基础语法(变量+数据类型+运算符)

    Java基础语法 2 基础语法 2.1 二进制(复习总结) 进制转换(二进制 八进制 十进制 十六进制) 2.2 变量 2.2.1 变量定义 2.2.2 使用变量 2.2.3 声明变量的3种方式 2. ...

  2. Java笔记整理-02.Java基础语法

    1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...

  3. Java基础学习笔记三 Java基础语法

    Scanner类 Scanner类属于引用数据类型,先了解下引用数据类型. 引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 数据类型 变量名 ...

  4. Java编程基础阶段笔记 day04 Java基础语法(下)

    ​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...

  5. Java笔记(2)--java基础语法

    目录 1 注释 2 常量与变量 2.1常量:在程序运行过程中,其值不可以发生改变的量 2.2变量:在程序运行过程中,其值可以发生改变的量 3 数据类型 4 运算符 4.1 基本算数运算符: 4.2 自 ...

  6. java冰法_Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /*这是 * 一段注释, * 它跨越了多个行*/ public void ...

  7. java笔记三java基础语法

    Final关键字 package demo07;public class Demo02Final {/*day11[final.权限.内部类.引用类型]* 学习了继承之后,子类可以对父类的方法进行重写 ...

  8. JavaSE入门0基础笔记 第二章Java基础语法

    JavaSE入门0基础笔记 第二章Java基础语法 1.运算符 1.1算术运算符 1.1.1运算符和表达式 1.1.2 算术运算符 1.1.3字符的"+"操作 1.1.4 字符串中 ...

  9. Java基础-02(基础语法)

    Java基础-02(基础语法) 一 注释 加粗样式 注释用来解释和说明程序的文字,注释是不会被执行的. 1.1单行注释 //这是一条单行注释 public int i; 1.2多行注释 /* 这是 * ...

  10. JAVA基础语法笔记(黑马程序员系列)

    1. Java概述 1.1 Java语言发展史(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Uni ...

最新文章

  1. “耐撕”团队2016.04.12站立会议
  2. POJ 1201 amp; HDU1384 amp; ZOJ 1508 Intervals(差分约束+spfa 求最长路径)
  3. CVPR 2017 ADNet:《 Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning》论文笔记
  4. 中法线如何反转_凹凸贴图、法线贴图、置换贴图傻傻分不清?
  5. swi 指令能用在C语言吗,内嵌汇编指令的应用举例
  6. Node.JS 学习路线图
  7. c char*转int_C语言中的char类型也有signed和unsigned?字符也有正负之分吗?
  8. matlab求迟滞,MATLAB PI迟滞模型问题
  9. [小结]InnoDB体系结构及工作原理
  10. iOS项目开发实战——制作视图的缩放动画
  11. android 重新打开活动,android – RxJava在活动恢复后重新订阅事件
  12. python基础知识-一篇文章搞定Python全部基础知识
  13. 上行和下行是什么意思_为什么无线通信需要同步?
  14. Linux驱动开发面试题整合
  15. Spark 的一些名词术语
  16. Android_仿爱奇艺Loading效果
  17. 苹果手机 生成html文件,苹果手机这个功能太厉害了,1秒就能将纸质文档转换为Word...
  18. 在 iphone 手机浏览器无法下载(主要指 safari 和 chrome ) excel ,但是可以直接预览 excel
  19. 微信小程序和公众号开发流程
  20. 三大特性看明白中国电影市场

热门文章

  1. 如何解决 Iterative 半监督训练 在 ASR 训练中难以落地的问题丨RTC Dev Meetup
  2. 2022最新200道软件测试面试题
  3. 【考研英语语法】复杂句的逻辑
  4. Win10微软输入法打不出汉字?
  5. 如何让计算机桌面自动更换,怎么让电脑自动更换桌面背景
  6. 每个程序员都应该知道的Linux基础知识!全文4900字,没有耐心的不建议看 ——( Linux文件系统 + 系统管理类命令 + bash基础特性)
  7. Disabling usage of PDSC Debug Description
  8. es中should查询使用注意
  9. java图片增加马赛克
  10. 【Aladdin Unity3D Shader编程】之四 贴图纹理