初识java—java的运算符以及程序逻辑结构

文章目录

  • 算术运算符
  • 关系运算符
  • 逻辑运算符(重点)
    • 逻辑与 &&
    • 逻辑 ||
    • 逻辑非!
    • 短路求值(重点)
  • 程序逻辑控制
    • 顺序结构
    • 分支结构(if else结构)
    • switch语句
      • 基本语法
  • 循环结构
      • break
      • continue
  • 从键盘输入

算术运算符

  1. 基本四则运算符:加减乘除模(+ - * / %)
int a = 20;
int b = 10;
System.out.println(a + b); // 30
System.out.println(a - b); // 10
System.out.println(a * b); // 200
System.out.println(a / b); // 2
System.out.println(a % b); // 0 --->模运算相当于数学中除法的余数

注意:
都是二元运算符,使用时必须要有左右两个操作数
int / int 结果还是int类型,而且会向下取整

int a = 3;
int b = 2;
// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整,即小数点之后全部舍弃掉了
System.out.println(a / b);
// 如果要得到数学中的结果,可以使用如下方式
double d = a*1.0 / b;
System.out.println(d);

做除法和取模时右操作数不能为0

int a = 1;
int b = 0;
System.out.println(a / b)
// 运行结果
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Test.main(Test.java:5)
% 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的
System.out.println(11.5 % 2.0);
// 运行结果
1.5
两侧操作数据类型不同时向范围大的提升
System.out.println(1+0.2); // +的左侧是int,右侧是double,在加之前int被提升为double
// 故:输出1.2

增量运算符

int a = 1;
a += 2; // 相当于 a = a + 2
System.out.println(a); // 输出3
a -= 1; // 相当于 a = a - 1
System.out.println(a); // 输出2
a *= 3; // 相当于 a = a * 3
System.out.println(a); // 输出6
a /= 3; // 相当于 a = a / 3
System.out.println(a); // 输出2
a %= 3; // 相当于 a = a % 2
System.out.println(a); // 输出2

关系运算符

关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false 。
关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false 。

int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false

逻辑运算符(重点)

逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型。

逻辑与 &&

语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果。
相当于现实生活中的且,比如:如果是学生,并且 带有学生证 才可以享受半票。
两个表达式都为真,结果才是真,只要有一个是假,结果就是假。
在这里插入图片描述

逻辑 ||

语法规则:表达式1 || 表达式2,左右表达式必须是boolean类型的结果。
相当于现实生活中的或,比如:买房子交钱时,全款 或者 按揭都可以,如果全款或者按揭,房子都是你的,
否则站一边去。

inta=1;
intb=2;
System.out.println(a==1||b==2);  //左为真且右为真则结果为真
System.out.println(a==1||b>100);  //左为真但右为假则结果也为真System.out.println(a>100||b==2);  //左为假但右为真则结果也为真System.out.println(a>100||b>100); //左为假且右为假则结果为假

逻辑非!

语法规则:! 表达式真变假,假变真
在这里插入图片描述

int a = 1;
System.out.println(!(a == 1)); // a == 1 为true,取个非就是false
System.out.println(!(a != 1)); // a != 1 为false,取个非就是true

短路求值(重点)

在我们判断逻辑关系的正确时有一个需要我们关注的地方就是无论是&&还是||他们都是短路求值在java中取消了0可以表示假1可以表示真,虽然在一定程度上避免了我们出错的概率但是我们还是需要知道的

 int m=10;int n=20;
System.out.println(m==0&&10/0==0);

这段程序很明显有个除0错误但是由于前面已经判定m=0为假因此后面的语句不执行直接打印false。

程序逻辑控制

顺序结构

顺序结构比较简单,按照代码书写的顺序一行一行执行

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
// 运行结果
aaa
bbb
ccc

分支结构(if else结构)

分支结构也就是if和else这里呢其实是和c语言一样的有c语言基础的同学应该都是知道的我只介绍一个重点就是if和else的垂直匹配请看下面的代码


int x = 10;
int y = 10;
if (x == 10)
if (y == 20)
System.out.println("aaa");
else
System.out.println("bbb");

请问最终打印的内容是什么。很明显是bbb因为下面的那个else是匹配离他最近的if的但是我们未来写代码不会这样写因为这是非常不规范的。

switch语句

基本语法

switch(表达式){
case 常量值1:{
语句1;
[break;]
}
case 常量值2:{
语句2;
[break;]
}
...
default:{
内容都不满足时执行语句;
[break;]
}
}

执行流程:

  1. 先计算表达式的值
  2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
  3. 当表达式的值没有与所列项匹配时,执行default

代码示例: 根据 day 的值输出星期

int day = 1;
switch(day) {
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;
}

多个case后的常量值不可以重复
switch的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int,注意不能是long类型
引用类型:String常量串、枚举类型

double num = 1.0;
比特就业课
break 不要遗漏, 否则会失去 "多分支选择" 的效果
switch 不能表达复杂的条件
switch 虽然支持嵌套, 但是很丑,一般不推荐~
switch(num) {
case 1.0:
System.out.println("hehe");
break;
case 2.0:
System.out.println("haha");
break;
}
break 不要遗漏, 否则会失去 "多分支选择" 的效果
switch 不能表达复杂的条件
switch 虽然支持嵌套, 但是很丑,一般不推荐~

循环结构

循环结构主要就是三种while,for,do while日常在java的使用频率的话for和while差不多dowhile比较少不怎么用。
下面是各自的模板

//while
while(条件){
执行的代码
}
//for
for(int i=(某个值);i<(某个值)/i>(某个值);i++/i--){
代码块
}
//dowhile
do{
代码块
}while(判断条件);//前面都是判断在前执行在后他是执行在前判断在后比如说下面这个例子
    int x = 10;int y = 20;do {x++;System.out.println(x);}while(x<9);}//这里就会打印11

我们发现, 当一个代码中带有多重循环的时候, 代码的复杂程度就大大提高了. 而比较复杂的代码就更容易出错.
后面我们会采用更简单的办法来解决这个问题.
注意事项

  1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
  2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
  3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.

break

break 的功能是让循环提前结束.
代码示例: 找到 100 - 200 中第一个 3 的倍数

int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍数, 为:" + num);
break;
}
num++;
}
// 执行结果
找到了 3 的倍数,:102

continue

continue 的功能是跳过这次循环, 立即进入下次循环.
代码示例: 找到 100 - 200 中所有 3 的倍数

 		int p=100;while(p<=200){if(p%3!=0){p++;continue;}System.out.println(p);p++;}

从键盘输入

使用 Scanner 读取字符串/整数/浮点数

import java.util.Scanner; // 需要导入 util 包
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
sc.close(); // 注意, 要记得调用关闭方法
// 执行结果
请输入你的姓名:
张三
请输入你的年龄:
18
请输入你的工资:
1000
你的信息如下:
姓名: 张三
年龄:18
工资:1000.0

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

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

相关文章

pygame入门学习(四)位图的使用

大家好&#xff01;我是码银&#x1f970; 欢迎关注&#x1f970;&#xff1a; CSDN&#xff1a;码银 公众号&#xff1a;码银学编程 载入图片 pygame.image.load( )&#xff0c;Pygame 可以通过pygame.image.load( )函数处理位图文件。 大致可以支持以下文件&#xff1a;JPG…

npm run serve和npm run dev的区别

1. 功能&#xff1a;通常&#xff0c;"npm run serve"用于启动开发服务器&#xff0c;提供实时的开发环境&#xff0c;支持自动重新加载和热模块替换。这样可以在开发过程中实时查看代码更改的效果。而"npm run dev"可以是一个自定义的指令&#xff0c;用于…

Linux--文件链接

目录 1.建立软连接 2.建立硬链接 3.什么是软链接 Linux中软链接的应用场景 4.什么是硬链接 5.文件与目录的硬链接数 6.软链接与硬链接的区别 用户无法对目录建立硬链接&#xff0c;可以建立软连接。 在Linux中文件的链接有两种&#xff1a;1.软连接 2.硬链接 1.建立软…

Oracle 高级网络压缩 白皮书

英文版白皮书在这里 或 这里。 本文包括了对英文白皮书的翻译&#xff0c;和我觉得较重要的要点总结。 执行概述 Oracle Database 12 引入了一项新功能&#xff1a;高级网络压缩&#xff0c;作为高级压缩选项的一部分。 本文概述了高级网络压缩、其优点、配置细节和性能分析…

HTML+CSS:3D轮播卡片

效果演示 实现了一个3D翻转的卡片动画&#xff0c;其中每个卡片都有不同的图片和不同的旋转角度。整个动画循环播放&#xff0c;无限次。整个页面的背景是一个占据整个屏幕的背景图片&#xff0c;并且页面内容被隐藏在背景图片之下。 Code <div class"container"…

redis 入门及相关知识汇总

什么是 Redis &#xff1f; 1&#xff0c;相对于mysql &#xff0c;oracle &#xff0c; 这种关系西数据库&#xff0c; 我们还有非关系数据库服务&#xff0c;他的产生是为了&#xff0c;解决常规数据库的并发能力&#xff0c;传统的关系型数据库受限于IO 和性能瓶颈&#xff…

【解决方法】pdf密码忘了怎么办?

PDF文件可以加密&#xff0c;大家都不陌生&#xff0c;并且大家应该也都知道PDF文件有两种密码&#xff0c;一个打开密码、一个限制编辑密码&#xff0c;因为PDF文件设置了密码&#xff0c;那么打开、编辑PDF文件就会受到限制。忘记了PDF密码该如何解密&#xff1f; PDF和offi…

父子组件通信$emit

文章目录 $emit 是vue中用于在子组件向父组件传递消息的一种机制。通过 $emit&#xff0c;子组件可以触发一个自定义事件&#xff0c;并向父组件传递数据。 例如&#xff1a; 以下是使用 $emit 的详细步骤&#xff1a; 1、子组件中触发自定义事件&#xff1a; <!-- ChildCom…

异步编程(JS)

前言 想要学习Promise&#xff0c;我们首先要了解异步编程、回调函数、回调地狱三方面知识&#xff1a; 异步编程 异步编程技术使你的程序可以在执行一个可能长期运行的任务的同时继续对其他事件做出反应而不必等待任务完成。 与此同时&#xff0c;你的程序也将在任务完成后显示…

微服务Spring Cloud架构详解

"Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具&#xff08;例如配置管理&#xff0c;服务发现&#xff0c;断路器&#xff0c;智能路由&#xff0c;微代理&#xff0c;控制总线&#xff09;。分布式系统的协调导致了样板模式, 使用Spring Cloud开…

jupyter notebook删除kernel & conda 删除虚拟环境

jupyter kernelspec list #列出jupyter的所有kernel jupyter kernelspec remove kernel_name #删除特定的kerneljupyter kernelspec list 命令可以在任何激活的环境中运行&#xff0c;无论是 base 环境还是某个虚拟环境。该命令将列出所有已注册的 Jupyter 内核&#xff0c;包括…

技术变革与裁员潮下程序员的挑战与应对策略

引言 一对来自中国的工程师夫妻在美身亡,疑因谷歌裁员致悲剧发生。在技术变革下,裁员对于程序员的影响到底有多大? 技术变革的影响 在当今科技日新月异的时代,技术变革正以前所未有的速度颠覆各行各业。新兴技术如人工智能、云计算、大数据、区块链等不断涌现,对软件工…

Flowable_dmn决策引擎应用

Flowable官方文档 https://www.flowable.com/open-source/docs/dmn/ch02-Configuration 对flowable的bpmn和dmn应用都比较熟悉&#xff0c;前后应用了好几年&#xff0c;年终总结需要这部分&#xff0c;文档就写一下分享给大家&#xff0c;搭建和资源下载参考&#xff1a; flo…

Linux|centos操作系统|USB设备的驱动如何寻找和USB设置的自动挂载,卸载(备忘)

仅做一个记录&#xff0c;Linux命令实在太多了&#xff0c;有些比较有趣的命令还是需要记录一下哈 1&#xff0c; usb-devices命令 该命令会打印输出现有机器上所有的USB设备&#xff0c;此命令等同于cat /sys/kernel/debug/usb/devices 其中部分输出如下&#xff1a; T: …

怎么提升数据分析能力?——功法篇(下)

先来复习一下上篇提到的3个疑问&#xff1a; 为什么我做出来的分析总觉得没有别人的那么高级&#xff1f; 老板为什么总说我的分析“太浅了”&#xff1f; 数据分析师每天的工作就是取数做需求&#xff1f; 看完上篇讲的金字塔原理&#xff0c;如果你还有疑问&#xff0c;不妨再…

【江科大】STM32:TIM输入捕获(理论部分)

文章目录 IC&#xff08;Input Capture&#xff09;输入捕获PWM频率 知识点补充1. 滤波器的工作原理&#xff1a;2. 边沿检测器&#xff1a;自动化清零CNT输入捕获的基本结构PWMI基本结构滤波器和分频器的区别误差分析pwm.cmain.cIC.c PWM模式测频率和占空比 IC&#xff08;Inp…

手机备忘录设置提醒后不通知怎么办 解决方法来了

在这个快节奏的时代&#xff0c;我们每个人都像是旋转的陀螺&#xff0c;总有无数的事项需要记录。手机备忘录&#xff0c;无疑成为了我们的得力助手。它轻便、简单&#xff0c;随时随地都能捕捉那些一闪而过的灵感和任务。 然而&#xff0c;有时我们会遇到这样的困扰&#xf…

部署开源的团队协作工具

简介 Zulip 是一个开源的团队协作工具&#xff0c;拥有独特的基于主题的线程功能&#xff0c;结合了电子邮件和聊天的优点&#xff0c;使远程工作更加高效和愉快。它是唯一设计用于实时和异步对话的现代团队聊天应用程序。其核心优势包括&#xff1a; 适用于大型企业、领先的开…

CSS的浮动(float)布局效果

<!DOCTYPE html> <html> <head> <meta charset"UTF-8" /> <title>浮动(float)布局效果</title> <style> *{ margin: 0; padding: 0; box-sizing: border-box; } /*.box1{ width: 300px; height: 300px; background-colo…

react后端开发:如何根据特定ID创建新的用户信息?

以音乐app开发为例&#xff0c;我们想要在想要创建新的唱片库&#xff0c;就需要使用Post连接服务器端新建唱片ID&#xff0c;并在该ID处插入唱片信息。怎么做呢&#xff1f; 使用create同时创建id和唱片信息 existingAlbum await Album.create({ _id: albumId, ...albumDat…