网络安全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://www.mzph.cn/news/751629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

区块链推广海外市场怎么做,CloudNEO服务商免费为您定制个性化营销方案

随着区块链技术的不断发展和应用场景的扩大&#xff0c;区块链项目希望能够进入海外市场并取得成功已成为越来越多公司的目标之一。然而&#xff0c;要在海外市场推广区块链项目&#xff0c;需要采取有效的营销策略和措施。作为您的区块链项目营销服务商&#xff0c;CloudNEO将…

后端程序员入门react笔记(八)-redux的使用和项目搭建

一个更好用的文档 添加链接描述 箭头函数的简化 //简化前 function countIncreAction(data) {return {type:"INCREMENT",data} } //简化后 const countIncreAction data>({type:"INCREMENT",data })react UI组件库相关资料 组件库连接和推荐 antd组…

Python 多线程大批量处理文件小程序

说明 平时偶尔需要进行重复性的对文件进行重命名、格式转化等。假设以文件复制功能作为目标&#xff0c;设计一个小程序使用多线程对文件进行批量复制。&#xff08;其实以后主要目标是针对Realsense的raw文件进行批量的转化&#xff0c;并借助多线程加速&#xff09; 代码 i…

uv 必备的工具 ps ai 全家桶合集

非常稀有的资源 &#xff0c;必应搜索 易品资源yipinziyuan 可以找到

sqllab第二十关通关笔记

知识点&#xff1a; cookie注入 可以进行url解析错误注入传参位置 get请求post请求cookie传参 输入admin admin进行登录&#xff0c;抓取当前数据包 通过放包发现是一个302跳转的响应包&#xff0c;页面只有一个 I Love Cookies&#xff1b;没什么信息 通过点击页面上方的按钮…

若你有才能,最好能遇上识才之人,高俅发迹的故事很好诠释了千里马与伯乐的关系

若你有才能&#xff0c;最好能遇上识才之人&#xff0c;高俅发迹的故事很好诠释了千里马与伯乐的关系 其实&#xff0c;“千里马”和“伯乐”都是中国古代传说里的角色。伯乐是古代一个善于相马&#xff08;识别马的好坏&#xff09;的人&#xff0c;而“千里马”则是指一匹能跑…

数通-路由技术基础介绍

自治系统——AS&#xff1b;LAN和广播域&#xff1b;CN-2——精品线路 路由器互联网段为同网段&#xff08;不同网段会造成三层不通&#xff0c;非直连则不会产生直连路由&#xff09; 路由选路&#xff0c;一个路由器的各个接口不能配置相同网段。 IP路由表&#xff1a;例&…

前端学习之css样式 背景样式、字体样式、列表样式、边框样式、内外边距元素属性的转换

背景样式 html文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>背景样式</title><link rel"stylesheet" href"../css/3.1背景样式.css"> </head> <bo…

华为云APIG跨域资源共享方案

## 浏览器的同源策略 浏览器的同源策略是一种安全机制&#xff0c;旨在保护用户的信息安全和隐私。它限制了一个网页的脚本只能与来自同一源的资源进行交互&#xff0c;即同源策略要求页面中加载的所有资源&#xff08;包括脚本、样式表、图片等&#xff09;必须来自相同的**域…

python之万花尺

1、使用模块 import sys, random, argparse import numpy as np import math import turtle import random from PIL import Image from datetime import datetime from math import gcd 依次使用pip下载即可 2、代码 import sys, random, argparse import numpy as np imp…

通俗易懂的Python循环讲解

循环用于重复执行一些程序块。从上一讲的选择结构&#xff0c;我们已经看到了如何用缩进来表示程序块的隶属关系。循环也会用到类似的写法。 for循环 for循环需要预先设定好循环的次数(n)&#xff0c;然后执行隶属于for的语句n次。 基本构造是 for 元素 in 序列: statemen…

【设计模式】Java 设计模式之装饰者模式(Decorator)

装饰者模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许用户通过在一个对象上动态地添加一些职责来增强其功能。这种模式将对象的核心职责与装饰功能分开&#xff0c;使得用户可以在运行时根据需要添加或删除装饰功能。 一、装饰者模式概…

进程间通信——匿名管道

匿名管道代码实现&#xff1a; #include <iostream> #include <unistd.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <sys/wait.h> #include <string> using namespace std; int main() {int fd[2…

云原生 IaaS 服务:构建下一代云计算基础设施

随着云计算技术的不断演进&#xff0c;云原生成为了现代应用开发和部署的主流趋势。在当今这个快速变化的数字化时代&#xff0c;企业越来越需要灵活、可伸缩、自动化的基础设施来支持他们的业务需求。而云原生 IaaS&#xff08;Infrastructure as a Service&#xff09;服务则…

python--scrapy 保存数据到 mongodb

第一步&#xff0c;settings.py添加 ITEM_PIPELINES {# scrapy_runklist.pipelines.ScrapyRunklistPipeline: 300,scrapy_runklist.pipelines.ScrapyWeiBoPipeline: 300, }# mongodb配置 MONGO_HOST "127.0.0.1" # 主机IP MONGO_PORT 27017 # 端口号 MONGO_DB …

2023蓝桥杯省赛真题分糖果 |枚举+DFS

题目链接&#xff1a; 2.分糖果 - 蓝桥云课 (lanqiao.cn) 说明&#xff1a; 虽然这道题并不是很难&#xff0c;思维上也不是特别难&#xff0c;数据小直接暴力就可以得到。但是还是需要注意一些细节&#xff0c;比如DFS的递归终止的条件的处理&#xff0c;当K>7的时候就要…

【TypeScript系列】声明合并

声明合并 介绍 TypeScript中有些独特的概念可以在类型层面上描述JavaScript对象的模型。 这其中尤其独特的一个例子是“声明合并”的概念。 理解了这个概念,将有助于操作现有的JavaScript代码。 同时,也会有助于理解更多高级抽象的概念。 对本文件来讲,“声明合并”是指编…

html--宠物

文章目录 htmljscss html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>CodePen - Spaceworm</title><script> window.requestAnimFrame (function() {return (window.requestAnimat…

程序员如何规划职业赛道?

在快速发展的信息技术时代&#xff0c;程序员作为数字世界的构建者&#xff0c;面临着前所未有的职业选择和发展机会。选择合适的职业赛道&#xff0c;不仅关乎个人职业发展的高度和速度&#xff0c;更影响着个人职业生涯的满意度和幸福感。本文将从自我评估与兴趣探索、市场需…

MySQL的启停登陆与退出

启动和停用MySQL服务 sudo /usr/local/mysql/support-files/mysql.server startsudo /usr/local/mysql/support-files/mysql.server stop登陆MySQL 1. mysql -uroot -p密码 2. mysql -h127.0.0.1 -uroot -p目标密码 3. mysql --host127.0.0.1 --userroot --password目标密码退…