网络安全JavaSE第二天(持续更新)

3. 基本数据与运算

3.6 运算符

3.6.1 算术运算符

在 Java 中,算术运算符包含:+、-、*、/、%

public class ArithmeticOperator {
public static void main(String[] args) {
int a = 10; // 定义了一个整型类型的变量 a,它的值是 10
int b = 6;
// 1. + 加法运算符,它是用于两个数相加操作
int result = a + b;
//System.out.println(result);
System.out.println("result = " + result);
System.out.println("--------");
// 2. - 减法运算符
result = a - b;
System.out.println("result = " + result);
// 3. * 乘法运算符
result = a * b;
System.out.println("result = " + result);
// 4. / 除法运算符。注意在 Java中两个整数相除,结果为整数。
result = a / b; // 10 / 6 = 1
System.out.println("result = " + result);
// 类型自动提升:发生在小类型向大类型转换。如将 int 转换为 double
double r = a / b * 1.0;
System.out.println("r = " + r);
// 大类型向小类型转换,需要强制执行,格式是使用一对小圆括号来指定要转换了类型
int n = (int)r;
System.out.println("n = " + n);
// 5. % 取模运算符,它其实是得到两个数相除的余数。
result = a % b;
System.out.println("result = " + result);}
}

在Java中除了基本算术运算符以外,还 ++、-- 运算符

public class ArithmeticOperator02 {
public static void main(String[] args) {
// ++ 运算符,它是一种自增操作
1
2
3
通过加法和减法运算符,实现两个数的交换操作:
int a = 10;
int r = a++; // 如果++在变量之后,是先将变量的值赋值后,自己再加1操作
System.out.println("r = " + r + ", a = " + a); // r = 10, a = 11
int b = 5;
r = ++b; // 如果 ++ 在变量之前,是先将变量做加1操作后,再把结果赋值给变量
System.out.println("r = " + r + ", b = " + b); // r = 6, b = 6
int c = 6;
int s = ++c + c++ + c++ + ++c;
/**
* 7 + c++ + c++ + ++c; c = 7
* 7 + 7 + c++ + ++c; c = 8
* 7 + 7 + 8 + ++c; c = 9
* 7 + 7 + 8 + 10; c = 10
*/
System.out.println("s = " + s + ", c = " + c); // s = 32, c = 10}
}
public class ArithmeticOperator03 {
public static void main(String[] args) {
int a = 5;
int r = a--; // 如果 -- 在变量之后,是先将变量的值赋值给别的变量后,自己再减1
System.out.println("r = " + r + ", a = " + a);
int b = 5;
r = --b; // 如果 -- 在变量之前,是先自己执行减1操作后,再将结果赋值给别的变
量。
System.out.println("r = " + r + ", b = " + b);
int c = 6;
int s = --c + c++ + c-- + ++c;
/**
* --c + c++ + c-- + ++c;
* 5 + c++ + c-- + ++c; c = 5
* 5 + 5 + c-- + ++c; c = 6
* 5 + 5 + 6 + ++c; c = 5
* 5 + 5 + 6 + 6; c = 6
*/
System.out.println("s = " + s + ", c = " + c); // s = 22, c = 6}
}

通过加法和减法运算符,实现两个数的交换操作:

public class ArithmeticOperator04 {
public static void main(String[] args) {
// 需求:使用 + 和 - 运算符实现两个数的交换
int a = 3;
int b = 4;
System.out.println("a = " + a + ", b = " + b);
//int tmp = 0;
//tmp = a;
//a = b;
//b = tmp;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a = " + a + ", b = " + b);}
}

3.6.2 比较运算符

逻辑运算符中包括 与(&&)、或(||)、非(!),它们运算的结果也是布尔类型的值。

public class LogicalOperator01 {
public static void main(String[] args) {
boolean f1 = true;
boolean f2 = false;
boolean f3 = false;
boolean f4 = true;
// 使用 && 操作时,在这个运算符的前后值都是 true 时,结果才为 true;否则结果为
false
System.out.println(f1 && f2); // true && false = false
System.out.println(f3 && f1); // false && true = false
System.out.println(f1 && f4); // true && true = true
System.out.println(f2 && f3); // false && false = false
System.out.println("-------------------");
// 当使用 || 操作时,在这个运算符前后的值只要有一个是 true 结果就为 true,否则
结果为 false
System.out.println(f1 || f2); // true || false = true
System.out.println(f3 || f1); // false || true = true
System.out.println(f1 || f4); // true || true = true
System.out.println(f2 || f3); // false || false = false
System.out.println("-------------------");
// 使用 ! 运算符,如果原来的值是 true 取反后值为 false;如果原来的值是 false,
取后结果为 true
System.out.println(!f1); // !true = false
System.out.println(!f2); // !false = true}
}

我们来把比较运算符和逻辑运算结合使用:

public class LogicalOperator02 {
public static void main(String[] args) {
int a = 5;
int b = 6;
boolean c = true;
System.out.println(a > b && c); // false
System.out.println(a > b || c); // true}
}

我们还可以将算术运算符与逻辑运算符结合使用,来演示短路效果:

public class LogicalOperator03 {
public static void main(String[] args) {
int a = 5;
boolean f1 = true;
System.out.println(f1 || a/0 == 0);
boolean f2 = false;
System.out.println(f2 && a/0 == 0);;}
}

&&运算符的短路效果是:当表达中找到 false 后,后面的值就不用计算了,直接返回 false 值。 ||运算符的短路效果是:当表达中找到 true 后,后面的值就不用计算了,直接返回 true 值。

3.6.4 位移运算符

位移运算包括左移 << 、右移>> 、无符号左移 <<< 、以及无符号右移 >>>

public class ShiftBitwiseOperators01 {
public static void main(String[] args) {
// 需求:计算 2 的 3 平方
int a = 2;
int r = a * a * a;
System.out.println(r);
r = a << 2;
System.out.println(r);}
}

使用位移运算来实现两个数据的交换:

public class ShiftBitwiseOperators02 {
public static void main(String[] args) {
int a = 3;
int b = 4;
System.out.println("a = " + a + ", b = " + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a = " + a + ", b = " + b);}
}

4. 流程控制语句

4.1 if条件语句

// 第一种:
if (条件表达式) {
执行的语句;
}
// 第二种:
if (条件表达式) {
表达式的值为真时执行的语句;
} else {
表达式的值为假时执行的语句;
}
// 第三种:
if (条件表达式1) {
表达式1的值为真时执行的语句;
} else if (条件表达式2) {
表达式2的值为真时执行的语句;
} else {
其他条件时要执行的语句;
}

使用示例,只有一个语句:

public class IfStatement01 {
public static void main(String[] args) {
// 接收用户输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
// 接收一个整数
int input = sc.nextInt();
if (input == 18) {
System.out.println("你猜对了。");}}
}

使用示例,有两个语句:

import java.util.Scanner;
/**
* if...else...语句
*/
public class IfStatement02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你猜的年龄:");
int age = sc.nextInt();
if (age == 18) {
System.out.println("猜对了。");
} else {
System.out.println("再给你一个机会");}
}

使用示例,多条件表达:

import java.util.Scanner;
/**
* 多条件表达式
*/
public class IfStatement03 {
public static void main(String[] args) {
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("你一定不是来自地球!");}}
}

4.2 switch分支语句

switch语句的语法如下:

switch(表达式) {
case 值1:
语句1;
break;
case 值2:
语句2;
break;
.....
default:
默认语句块;
break;
}

使用示例:

import java.util.Scanner;
/**
* Switch语句
*/
public class SwitchStatement {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("今天是星期几:");
int week = sc.nextInt();
switch (week) {
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;}}
}

注意: 1. case 语句块中,break 不能省略,否则会继续向下执行,直接遇到 break 或者 switch 代码块 结束。 2. default 语句块是可以在 swtich 语句块中任何位置,不一定就是在最后。但如果不是在最 后,那么代码块中的 break 语句不能省略 3. 如果default语句块是在最后,那么 break 语句可以省略

if 语句块和 swtich 语句块的区别: 1. switch语句比if语句的执行效率高 2. if语句的适用场景比switch要多

4.3 for循环

当我们需要重复去做某些事(功能)时,就可以考虑使用循环来实现。在 Java中循环有以下几种: for 循环 while 循环 do..while循环 对于循环来说它有以下几个部分组成: 1. 循环变量初始,在整个循环中只会执行一次 2. 循环条件 3. 循环体,它就是我们要反复执行代码 4. 循环变量的步长,它是用来改变循环变更,从而可以达到退出循环的目的 for循环的简单使用:

1)使用格式:

for (循环变量类型 循环变量 = 初值; 循环条件; 循环变量步长) {
循环体;
}

2)使用示例:使用 for 循环实现 1 ~ 100 的和

public class ForDemo02 {
public static void main(String[] args) {
int sum = 0; // 存放最终的结果
for (int i = 1; i <= 100; i++) {
//sum = sum + i;
sum += i; // +=、-=、/=、*=、%=
}
System.out.println("sum = " + sum);}
}

3)示例3:计算 1 ~ 100 的偶数和

public class ForDemo03 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println("sum = " + sum);
System.out.println("------------------");
sum = 0;
for (int i = 2; i <= 100; i = i + 2) {
sum += i;
}
System.out.println("sum = " + sum);}
}

对于 for 循环来说,还可以做如下的变化:

public class ForDemo04 {
public static void main(String[] args) {
int sum = 0;
int i = 2;
for (; i <= 100; ) {
i = i + 2;
sum += i;
}
System.out.println("sum = " + sum);}
}

for 循环的死循环写法:

public class ForDemo05 {
public static void main(String[] args) {
for (;;) {
System.out.println("hello");}}
}

for循环是可以嵌套的,它的语法格式为:

for (循环变量类型 循环变量 = 初值; 循环条件; 循环变量步长) {
for (循环变量类型 循环变量 = 初值; 循环条件; 循环变量步长) {
循环体;}
}

案例1:打印四边形

public class ForDemo06 {
public static void main(String[] args) {
// 打印5行10列的长方形
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(" * ");
}
System.out.println();}}
}

案例2:打印如下三角形

public class ForDemo07 {
public static void main(String[] args) {
for (int i = 0; i <= 6; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("#");
}
System.out.println();}}
}

打印倒三角

public class ForDemo08 {
public static void main(String[] args) {
for (int i = 1; i <= 6; i++) {
for (int j = 6; j >= i; j--) {
System.out.print("#");
}
System.out.println();}}
}

4.4 while循环

4.5 do...while循环

4.6 break、continue关键字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2871335.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

误删电脑C盘要重装系统吗 误删电脑C盘文件怎么恢复 误删c盘系统文件怎么修复 不小心删除C盘的东西恢复

C盘通常是操作系统(如Windows)的默认安装目录。它包含了操作系统的核心文件、驱动程序及系统所需的各种支持文件。这些文件对于计算机的正常运行至关重要。如果我们不小心将C盘的重要文件删除&#xff0c;会导致应用无法打开。本篇文章&#xff0c;我们将学习误删电脑C盘要重装…

再见 Pandas,又一数据处理神器

cuDF介绍 cuDF是一个基于Apache Arrow列内存格式的Python GPU DataFrame库&#xff0c;用于加载、连接、聚合、过滤和其他数据操作。cuDF还提供了类似于pandas的API。 GitHub&#xff1a; https://github.com/rapidsai/cudf Documentation&#xff1a; https://docs.rapids.a…

Alma Linux - Primavera P6 EPPM 安装及分享

引言 继上一期发布的Rocky Linux版环境发布之后&#xff0c;近日我又制作了基于Alma Enterprise Linux 的P6虚拟机环境&#xff0c;同样里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机&#xff0c;请先与Oracle Primaver…

四连通与八连通的区别 -- 图例讲解

概念 四连通区域&#xff1a;指从某个点出发&#xff0c;只能通过上、下、左、右四个方向的运动到达区域内的其他点&#xff0c;且不能跨越区域的边界。 八连通区域&#xff1a;除了上、下、左、右四个方向&#xff0c;还可以沿对角线方向&#xff08;左上、右上、左下、右下…

Python 查找并高亮PDF中的指定文本

在处理大量PDF文档时&#xff0c;有时我们需要快速找到特定的文本信息。本文将提供以下三个Python示例来帮助你在PDF文件中快速查找并高亮指定的文本。 查找并高亮PDF中所有的指定文本查找并高亮PDF某个区域内的指定文本使用正则表达式搜索指定文本并高亮 本文将用到国产第三方…

Spring Web MVC入门(3)

学习Spring MVC 请求 传递JSON数据 JSON概念 JSON: JavaScript Object Natation JSON是一种轻量的数据交互格式, 采用完全独立于编程语言的文本格式来存储和标识数据. 简单来说, JSON是一种数据格式, 有自己的格式和语法, 使用文本来表示对象或数组的信息, 因此JSON的本质…

C++之deque与vector、list对比分析

一.deque讲解 对于vector和list&#xff0c;前一个是顺序表&#xff0c;后一个是带头双向循环链表&#xff0c;前面我们已经实现过&#xff0c;这里就不再讲解了&#xff0c;直接上deque了。 deque&#xff1a;双端队列 常见接口大家可以查看下面链接&#xff1a; deque - …

Java多线程实战-CountDownLatch模拟压测实现

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️本系列源码仓库&#xff1a;多线程并发编程学习的多个代码片段(github) &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正…

深度学习 精选笔记(13.2)深度卷积神经网络-AlexNet模型

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

单片机学到什么程度才可以去工作?

单片机学到什么程度才可以去工作? 如果没有名校或学位的加持&#xff0c;你还得再努力一把&#xff0c;才能从激烈的竞争中胜出。以下这些技能可以给你加分&#xff0c;你看情况学&#xff0c;不同行业对这些组件会有取舍: . Cortex-M内核:理解MCU内核各部件的工作机制&#…

如何优化使用Nginx

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容数据压缩负载均衡安装OpenResty或ngx_http_lua_module配置Nginx以启用Lua编写Lua脚本配置upstream块以使用Lua变量测试配置 合并请求1. 确保SSI模块已启用2. 配置Nginx以使用SSI3. 使用SSI指令4. 重新加载或重启Nginx 集成…

Python爬虫与数据可视化源码免费领取

引言 作为一名在软件技术领域深耕多年的专业人士&#xff0c;我不仅在软件开发和项目部署方面积累了丰富的实践经验&#xff0c;更以卓越的技术实力获得了&#x1f3c5;30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定&#xff0c;也是对我的创新精神和专业承诺…

【leetcode-53最大子数组和】

题目&#xff1a; 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。子数组是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] …

MySQL知识点极速入门

准备SQL 创建数据库&#xff1a; 创建一个名为emptest的数据库 create database emptest; use emptest; 创建数据表&#xff1a; 设计一张员工信息表&#xff0c;要求如下&#xff1a; 1. 编号&#xff08;纯数字&#xff09; 2. 员工工号 (字符串类型&#xff0c;长度不超…

Windows10中配置并使用nvidia-smi

1. 问题 当在window10系统中使用nvidia-smi命令时&#xff1a; 会得到提示&#xff1a;nvidia-smi不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 注&#xff1a;其实安装NVIDIA控制面板时&#xff0c;软件已内置安装了nvidia-smi.exe&#xff0c;我们只需…

文件包含漏洞(input、filter、zip)

一、PHP://INPUT php://input可以访问请求的原始数据的只读流&#xff0c;将post请求的数据当作php代码执行。当传入的参数作为文件名打开时&#xff0c;可以将参数设为php://input,同时post想设置的文件内容&#xff0c;php执行时会将post内容当作文件内容。从而导致任意代码…

【Java刷题篇】串联所有单词的子串

这里写目录标题 &#x1f4c3;1.题目&#x1f4dc;2.分析题目&#x1f4dc;3.算法原理&#x1f9e0;4.思路叙述✍1.进窗口✍2.判断有效个数✍3.维护窗口✍4.出窗口 &#x1f4a5;5.完整代码 &#x1f4c3;1.题目 力扣链接: 串联所有单词的子串 &#x1f4dc;2.分析题目 阅…

长连接技术

个人学习记录&#xff0c;欢迎指正 1.轮询 1.1 轮询的形式 短连接轮询 前端每隔一段时间向服务端发起一次Http请求来获取数据。 const shortPolling () > { const intervalHandler setInterval(() > {fetch(/xxx/yyy).then(response > response.json()).then(respo…

企业计算机服务器中了devicdata勒索病毒怎么办,devicdata勒索病毒解密工具流程

随着科学技术的不断发展与应用&#xff0c;越来越多的企业开始利用网络开展各项工作业务&#xff0c;网络为企业的生产运营提供了极大便利&#xff0c;大大提高了生产运营效率&#xff0c;同时也为企业的发展规划带来不错的契机。但网络是一把双刃剑&#xff0c;网络在为人们提…

HAProxy高性能负载均衡器

一、HAProxy基础知识 &#xff08;一&#xff09;HAProxy概述 HAProxy是一款基于事件驱动、单进程模型设计的四层与七层负载均衡器&#xff0c;它能够在TCP/UDP层面以及HTTP(S)等应用层协议上实现高效的流量分发。HAProxy不仅适用于Web服务器负载均衡&#xff0c;还能应用于数据…