JavaSE第03篇:Java基础语法之运算符、分支结构
2021-04-18 01:28
标签:图片 字符串 def 讲解 OLE 部分 public 基础语法 记忆 本章将会延续JavaSE第02篇,详细讲解Java基础语法中的运算符和流程控制中的顺序结构、分支结构。 运算符,简而言之就是运算的符号。 我们通常所理解的运算一般和数学有关系,同样编程中的运算和数学中运算规则是一致的。 在数学中一般我们运算的是数字,在编程中运算的就是数据了。 若要运算,那必然是少不了运算符号了。 从应用角度来看,在软件开发中,有很多很多业务功能需要通过程序运算的才能实现,比如: 如何命令计算机计算数据呢?这时就需要运算符号表示运算。 赋值运算符 算术运算符 关系运算符 逻辑运算符 其他运算符 运算符格式和作用 代码 运算符格式和作用 代码 关系运算符也叫比较运算符 运算符格式和作用 代码 注意:千万不要把"=="误写成“=”,"=="是判断是否相等的关系,"="是赋值。 逻辑运算符格式及运算符作用 逻辑运算符可以判断多个组合条件是否成立,运算结果是布尔值:true或false 代码 短路逻辑运算符 在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。 同理在逻辑或运算中,一旦发现值为true,右边的表达式将不再参与运算 逻辑与 短路与 逻辑或 短路或 代码 复合赋值运算符 运算符: 作用:和变量相关,是算术运算符和赋值运算符的组合使用。 代码: 小括号 运算符: 作用:可以提高运算的优先级。 代码: 自增和自减 运算符: 作用:变量自增1或自减1 代码: 三元运算符 格式: 意义:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。 代码: 需求 接收用户录入的两个数字,计算两个数字的和。 知识准备:如何接收用户录入的数据 我们可以通过 Scanner 类来获取用户的输入。使用步骤如下: 1、导包。Scanner 类在java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面。 2、创建Scanner对象。 3、接收数据 4、示例 功能实现: 输出结果 流程,指的是程序的执行顺序。程序默认的执行顺序是自上而下执行的。 但是,在程序中有些程序是选择执行的或是重复执行的,不同的选择会有不同的功能。比如我们玩游戏时王者荣耀时,我们在手机上选择不同英雄时,本质底层就是程序在执行不同的代码。 所以,若要控制程序执行的流程,就必须学习流程控制语句。 流程控制语句分为三大类:顺序结构、分支结构 和 循环结构. 本篇我们学习顺序结构和分支结构,循环结构我们下一篇再细细讲解。 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序自上而下、从左向右,依次执行,程序中大多数的代码都是这样执行的。 顺序结构执行流程图: 语句格式: 执行流程: 若条件表达式成立(结果是true),则执行代码块中的程序。 示例: 需求:接收用户输入的年龄,判断用户是否满18岁,若满18岁,则输出“年龄合法” 语句格式 执行流程 若条件表达式成立(结果是true),则执行if代码块中的程序,反之执行else代码块中的程序。 示例: 需求:接收用户输入的年龄,判断用户是否满18岁,若满18岁,则输出“年龄合法”,否则输出“年龄不合法” 语法格式: 执行流程: 代码从上而下依次判断。 若其中有满足条件的,则进入对于的代码块执行,后续分支不再执行。 若都不满足,则执行else中的语句。 示例: 需求:接收用户输入的学习成绩,输出等级。成绩大于等于90是A,大于等于80小于90是B,大于等于70小于80是C,大于等于60小于70是D,其他情况时E 语法格式: 执行流程: 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 示例1: 需求:提示用户录入1-7之间的数字,根据数据返回给用户星期几 示例2: 需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。 注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。 JavaSE第03篇:Java基础语法之运算符、分支结构 标签:图片 字符串 def 讲解 OLE 部分 public 基础语法 记忆 原文地址:https://www.cnblogs.com/lpl666/p/13296717.html
第一章:运算符
1.1-为什么需要运算符 (了解)
1.2-运算符的分类(了解)
1.3-赋值运算符(记忆)
=
int age = 10; // 把数据10赋值给变量age
1.4-算术运算符(记忆)
+
-
*
/
%
public static void main(String[] args) {
int a = 10;
int b = 3;
/* 加法运算 */
System.out.println(a + b);
// 结果:13
/* 减法运算 */
System.out.println(a - b);
// 结果:7
/* 乘法运算 */
System.out.println(a * b);
// 结果:30
/* 除法运算 */
System.out.println(a / b);
// 结果:3
/* 取模运算-求余数 */
System.out.println(a % b);
// 结果:1
/* 注意:在java中,任何整数不能除以0, 在运行时会发生错误! */
System.out.println(200/0);
// 结果:Exception in thread "main" java.lang.ArithmeticException: / by zero
}
1.5-关系运算符 (记忆)
>
==
>=
!=
true
或false
public static void main(String[] args) {
int a = 10;
int b = 12;
/* 大于 */
System.out.println(a > b);
// 结果:false
/* 小于 */
System.out.println(a = b);
// 结果:false
/* 小于等于 */
System.out.println(a
1.6-逻辑运算符(记忆)
public class Operator {
public static void main(String[]args){
//定义变量
int i = 100;
int j = 200;
int k = 300;
//& “与”,并且的关系,只要表达式中有一个值为false,结果即为false
System.out.println((i > j) & (i > k)); //false & false,输出false
System.out.println((i k)); //true & false,输出false
System.out.println((i > j) & (i j) | (i > k)); //false | false,输出false
System.out.println((i k)); //true | false,输出true
System.out.println((i > j) | (i j) ^ (i > k)); //false ^ false,输出false
System.out.println((i k)); //true ^ false,输出true
System.out.println((i > j) ^ (i j)); //false
System.out.println(!(i > j)); //!false,,输出true
}
}
&
,无论左边真假,右边都要执行。&&
,如果左边为真,右边执行;如果左边为假,右边不执行。|
,无论左边真假,右边都要执行。||
,如果左边为假,右边执行;如果左边为真,右边不执行。
public class Operator2 {
public static void main(String[]args){
int x = 3;
int y = 4;
System.out.println(((x=x+1) > 4) & ((y=y+1) > 5)); // 两个表达都会运算
System.out.println(x); // 4
System.out.println(y); // 5
int a = 3;
int b = 4;
System.out.println(((a=a+1) > 4) && ((b=b+1) > 5)); // 左边已经可以确定结果为false,右边不参与运算
System.out.println(a); // 4
System.out.println(b); // 4
}
}
1.7-其他运算符 (记忆)
+=
、-=
、/=
、*=
、%=
int age = 10;
age+=3;
System.out.print(age);
// 运行结果:13。 age+=3 拆解 age = aeg + 3
(表达式)
int result = (10 + 8) * 2
++
、 --
++变量
或--变量
,先让变量自身加1或减1,再参与表达式运算。变量++
或变量--
,先让变量自身参与表达式运算,再自身加1或减1 /* 前置自增 */
int a = 10;
System.out.print(++a); // 结果:11
System.out.print(a); // 结果:11
/* 后置自增 */
int b = 10;
System.out.print(b++); // 结果:10
System.out.print(b); // 结果:11
条件表达式?表达式1:表达式2
int a = 10>8?10:8;
System.out.print(a); // 结果:10
第二章:流程控制
2.0-数据输入(了解)
import java.util.Scanner;
Scanner sc = new Scanner(System.in);// 创建Scanner对象,sc表示变量名,其他均不可变
int i = sc.nextInt(); // 表示将键盘录入的值作为int数返回。
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
int x = sc.nextInt();
//输出数据
System.out.println("x:" + x); }
}
import java.util.Scanner;
public class Test01 {
public static void main(String[]args){
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 提示输入数据
System.out.println("请输入第一个数字:");
// 接收用户输入的第一个数据
int num1 = scanner.nextInt();
// 提示输入数据
System.out.println("请输入第二个数字:");
// 接收用户输入的第二个数据
int num2 = scanner.nextInt();
// 计算两个数字的和并输出
int sum = num1 + num2;
// 任何数据和字符串相加时,"+"表示连接符
System.out.println(num1 + "+" + num2 + "=" + sum);
}
}
请输入第一个数字:
100
请输入第二个数字:
20
100+20=120
2.1-为什么要学习流程控制 (了解)
2.2-顺序结构 (重点)
public class Test {
public static void main(String[]args){
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
}
}
/*
执行结果:
1
2
3
4
*/
2.3-分支结构 (重点)
2.3.1- if语句
if(条件表达式){
// 代码块
}
import java.util.Scanner;
public class Test02 {
public static void main(String[]args){
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 提示输入数据
System.out.println("请输入您的年龄:");
// 接收用户输入的年龄
int age = scanner.nextInt();
// 判断
if(age >=18 ) {
System.out.println("年龄合法");
}
}
}
2.3.2- if-else语句
if(条件表达式){
// 代码块
}else {
// 代码块
}
import java.util.Scanner;
public class Test03 {
public static void main(String[]args){
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 提示输入数据
System.out.println("请输入您的年龄:");
// 接收用户输入的年龄
int age = scanner.nextInt();
// 判断
if(age >=18 ) {
System.out.println("年龄合法");
}else {
System.out.println("年龄不合法");
}
}
}
2.3.3- if-else if-...else语句
if(条件表达式){
// 代码块
}else if(条件表达式){ // 需求不同,else if语句定义的个数不同
// 代码块
}
else if(条件表达式){
// 代码块
}
// ...
else { // 需求不同,else语句可有可无
// 代码块
}
import java.util.Scanner;
public class Test04 {
public static void main(String[]args){
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 提示输入数据
System.out.println("请输入学生成绩:");
// 接收用户输入的数据
float score = scanner.nextFloat();
// 判断
if(score>=90) {
System.out.println("A");
}else if(score>=80) {
System.out.println("B");
}else if(score>=70) {
System.out.println("C");
}else if(score>=60) {
System.out.println("D");
}else{
System.out.println("E");
}
}
}
2.3.4- switch语句
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
//...
default:
语句体n+1;
break;
}
import java.util.Scanner;
public class Test05 {
public static void main(String[]args){
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 提示输入数据
System.out.println("请输入一个数字(1-7):");
// 接收用户输入的数据
int num = scanner.nextInt();
// 判断
switch (num){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("不合法");
break;
}
}
}
import java.util.Scanner;
public class Test06 {
public static void main(String[]args){
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 提示输入数据
System.out.println("请输入一个月份(1-12):");
// 接收用户输入的数据
int num = scanner.nextInt();
// 判断
switch (num){
case 12:
case 1:
case 2:
System.out.println("冬");
break;
case 3:
case 4:
case 5:
System.out.println("春");
break;
case 6:
case 7:
case 8:
System.out.println("夏");
break;
case 9:
case 10:
case 11:
System.out.println("秋");
break;
default
System.out.println("输入的数字不合法");
}
}
}
文章标题:JavaSE第03篇:Java基础语法之运算符、分支结构
文章链接:http://soscw.com/index.php/essay/76151.html