Java语言程序设计——篇二(2)

news2025/1/22 19:36:04

Java语言基础

  • 运算符与表达式
      • 运算符
        • 1、算术运算符
        • 2、关系运算符
        • 3、逻辑运算符( &&、||、 !、&、| 、^)
        • 4、位运算符( >>、<<、>>>、&、|、^、~)
        • 5、赋值运算符
        • 6、条件运算符
        • 7、字符串运算符
        • 8、 运算符的优先级和结合性
  • 由键盘输入数据
      • 由键盘输入数据---输入字符串
      • 由键盘输入数据---输入数值
      • 由键盘输入数据——多个数据
  • 简化输入方式
      • 由键盘输入数据---多个数据
  • 例题展示
      • 代码展示:
      • 运行结果:

运算符与表达式

运算符

根据操作数个数的不同,往往分为

  • 单目运算符
  • 双目运算符
  • 三目运算符。
    按照运算符功能来分,基本的运算符有下面几类。
    算术运算符 +、-、*、/、%、++、–
    关系运算符 >、<、>=、<=、==、!=
    逻辑运算符 &&、||、 !、&、| 、^
    位运算符 >>、<<、>>>、&、|、^、~
    赋值运算符 =、扩展赋值运算符,如+=、/=等。
    条件运算符 ? :
    其他运算符 :包括分量运算符.、下标运算符[ ]、实例运算符instanceof、内存分配运算符new、强制类型转换运算符(类型)、方法调用运算符( )等。
1、算术运算符

+ - * / % +(取正) -(取负) ++ –
两个整数相“/”,结果为整数
对取模运算符“%”来说,其操作数可以为者浮点数。如37.2%10=7.2。(默认双精度)
Java语言对“+”进行了扩展,使它能够进行字符串的连接,如"abc"+“de”,得到字符串"abcde"。

2、关系运算符

关系运算符是双目运算符,用来比较两个数的关系,不能在浮点数之间作“==”的比较。 其运算结果是布尔类型的值true或false。当运算符所对应的关系成立时结果为true,否则结果为假。所有的关系运算符参见表4。
在这里插入图片描述

3、逻辑运算符( &&、||、 !、&、| 、^)

逻辑运算符用来计算布尔类型的值,有单目运算符和双目运算符,其运算结果是布尔类型的值true或false。
注:&&、 || 、!具有短路特性

4、位运算符( >>、<<、>>>、&、|、^、~)

位运算符分为按位运算符(Bitwise Operators)和移位运算符(Shift Operators)。位运算符用来计算整数类数值中的二进制位,计算结果也是整数
不同长度的整数进行按位运算时,会把二进制位数较短的整数的高位(左侧)补0,补齐位数后再进行运算。

5、赋值运算符

赋值运算符分为简单赋值运算符(Simple Assignment Operator)复合赋值运算符(Compound Assignment Operators)。简单赋值运算符只有=,用于计算运算符=的右边表达式的值并将其送到左边的存储单元中。使用复合赋值运算符,可以使得表达式变得简洁,同时也有助于加快程序运行速度。所有的赋值运算符参见表5。
复合赋值运算表达式的一般形式是:
<表达式1> <运算符>= <表达式2>

在这里插入图片描述

6、条件运算符

一般形式为:expression?statement1:statement2
注:
1.statement1和statement2需要返回相同的数据类型,且该类型不能是void。
2.一般用来实现if-else条件语句的功能
(max=a>b?a:b)

7、字符串运算符

字符串运算符 “+” 是以String为对象进行的操作。运算符“+”完成字符串连接操作,如果必要,则系统自动把操作数转换为String型。

float a=100.0; //定义变量a为浮点型
print(“The value of a is”+a+“\n”); //系统自动将a转换成字符串
String s1+=a;//s1=s1+a,若a非String型,自动转换为String型。

8、 运算符的优先级和结合性

在对一个表达式进行运算时,要按运算符的优先顺序从高向低进行,同级的运算符则按从左到右的方向进行,故运算符有优先级和结合性。
不必死记硬背运算符的优先级。必要时可以在表达式中使用圆括号,圆括号的优先级最高。圆括号还可以使表达式显得更加清晰。

int x = 5;
int y = 5;
boolean z = x * 5 == y + 21;
boolean z = (x * 5) == (y + 21)

由键盘输入数据

键盘输入的数据,不管是文字还是数字,Java皆视为字符串,因此若是要由键盘输入数字则必须再经过转换。

由键盘输入数据—输入字符串

//appA_3.java        由键盘输入字符串
import java.io.*;    //加载java.io类库里的所有类
public class App3
{
  public static void main(String[] args) throws IOException
  {
    BufferedReader buf;
    String str;
    buf = new BufferedReader (new InputStreamReader (System.in));
    System.out.print("请输入字符串;");
    str = buf.readLine();        //将输入的文字指定给字符串变量str存放
    System.out.println("您输入的字符串是:"+str);   //输出字符串
  }
}

由键盘输入数据—输入数值

由键盘输入的数据,不管是文字还是数字,Java皆视为字符串,
因此若是要由键盘输入数字则必须再经过转换。

//App4.java         由键盘输入数值型数据
import java.io.*;
public class App4
{
  public static void main(String[] args) throws IOException
  {
    float num;
    String str;
    BufferedReader buf;
    buf=new BufferedReader(new InputStreamReader(System.in));
    System.out.print("请输入一个实数:");
    str=buf.readLine();         //将输入的文字指定给字符串变量str存放
    num= Float.parseFloat(str);   //将str转换成float类型后赋给num
    System.out.println("您输入的数为:"+num);
  }
}

由键盘输入数据——多个数据

//方法1:App5.java     由键盘输入多个数据
import java.io.*;
public class App5{
  public static void main(String[] args) throws IOException
  {
    int num1,num2;
    String str1,str2;
    InputStreamReader in;
    in= new InputStreamReader(System.in);
    BufferedReader buf;
    buf=new BufferedReader(in);
    System.out.print("请输入第一个数:");
    str1=buf.readLine();         //将输入的内容赋值给字符串变量str1
    num1=Integer.parseInt(str1);   //将str1转成int类型后赋给num1
    System.out.print("请输入第二个数:");
    str2=buf.readLine();         //将输入的内容赋值给字符串变量str2
    num2=Integer.parseInt(str2);   //将str2转成int类型后赋给num2
    System.out.println(num1+"*"+num2+"="+(num1*num2));
  }
}

简化输入方式

为了简化输入操作,从Java SE 5版本开始在java.util类库中新增了一个类专门用于输入操作的类Scanner,可以使用该类输入一个对象。

  • 标准输入/输出流
    System.out 标准输出流
    System.in 标准输入流
  • 使用Scanner类从控制台输入,创建它的对象,以读取来自System.in 的输入:
    Scanner input = new Scanner(System.in);( Scanner类在包java.util里,在第一行要被导入)
    对象可以调用nextDouble()方法来获取一个double值
    double d = input.nextDouble();
  • Scanner对象的方法:在该结构中用创建的reader对象调用nextDouble()方法来读取用户从键盘上输入的double型数据,也可用reader对象调用下列方法,读取用户在键盘上输入的相应类型的数据:
    nextByte()、 nextShort()、 nextInt()
    nextLong()、 nextFloat() 、nextDouble()
    next() 读入一个字符串
    nextLine() 读取一整行文本

    由键盘输入数据—多个数据

//方法2:App3_6.java     由键盘输入多个数据
import java.util.*;    //加载java.util类库里的所有类
public class App3_6
{
  public static void main(String[] args)
  {
    int num1;
    double num2;
    Scanner reader=new Scanner(System.in);
    System.out.print("请输入第一个数:");
    num1= reader.nextInt();       //将输入的内容作为int型数据赋值给变量num1
    System.out.print("请输入第二个数:");
    num2= reader.nextDouble();    //将输入的内容作为做double型数据赋值给变量num2
    System.out.println(num1+"*"+num2+"="+(num1*num2));
  }
}

例题展示

  • 编写程序,给定半径,计算圆的面积

代码展示:

package shujia_test1;

import java.util.Scanner;
public class Csdn2_2 {
       public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       System.out.print("Enter a number for radius:");
       final double PI = 3.14159;
      double radius = input.nextDouble();
      double area = radius * radius * PI;
      System.out.println("The area is"+" " + area);
       }
}

运行结果:

在这里插入图片描述
博主用心写,读者点关注;互动传真情,知识不迷路

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

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

相关文章

基于Tkinter GUI库的ARP欺骗攻击工具

基于Tkinter GUI库的ARP欺骗攻击工具 程序提供了一个简单易用的GUI界面,让用户可以方便地进行ARP欺骗攻击。但ARP欺骗是一种黑客攻击手段,可能会造成严重的网络安全问题,请谨慎使用,仅限于合法的网络安全测试和研究目的。 这个ARP欺骗工具需要用户输入目标主机的IP和MAC地址,…

去中心化时代的到来:区块链如何重新定义权力和控制

随着区块链技术的迅猛发展&#xff0c;我们正逐步进入一个去中心化的新时代。区块链不仅仅是一种技术&#xff0c;更是一种理念&#xff0c;它通过去除中心化的权威和控制节点&#xff0c;重新定义了数据管理、交易验证和权力分配的方式。本文将深入探讨区块链如何在去中心化时…

【软件测试】 1+X初级 功能测试试题

登录模块需求说明书 人力资源管理系统 Web 端分为系统管理员、人资管理员、普通职员三个角色。系统登录模块 需求包括用户&#xff08;UI&#xff09;页面、业务规则两部分。 UI 页面 登录页 业务规则 【登录】 人资管理员、普通职员需要通过登录页面进入系统&#xff08;We…

Python项目结构和组织

1、问题背景 在Python中&#xff0c;如何将项目中的代码逻辑地组织到不同的文件/类中&#xff1f;这种情况在C#/Java等语言中很常见&#xff0c;想要了解Python项目中如何实现类似的结构。另外&#xff0c;在Python中是否存在“命名空间”&#xff0c;“项目”和“面向对象原则…

Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比

章节内容 上一节完成了如下的内容&#xff1a; 编写Agent Conf配置文件收集Hive数据汇聚到HDFS中测试效果 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机上搭建过一次&#xff0…

springboot+vue+mybatis图书销售管理系统+PPT+论文+讲解+售后

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括图书销售管理系统的网络应用&#xff0c;在外国图书销售管理系统已经是很普遍的方式&#xff0c;不过国内的管理网站可能还处于起步阶段。图书销售管理系统具有网上图书信息管…

基础跟张宇,强化用36讲还是高数辅导讲义?

基础跟的张宇老师&#xff0c;强化阶段跟谁要看基础学的怎么样&#xff01; 因为张宇老师今年课程大改版&#xff0c;和以往的课程一点也不一样&#xff01; 具体变动是&#xff1a; 张宇老师把往年强化阶段的知识前移&#xff0c;也就是说现在的基础阶段要讲的内容是以往基…

隧道定位导航的解决方案

隧道定位导航是一个复杂但重要的技术领域&#xff0c;主要面临的是隧道内卫星信号受遮挡导致定位困难的问题。以下是对隧道定位导航技术的详细分析&#xff1a; 一、隧道定位导航的挑战 在隧道等封闭环境中&#xff0c;由于山体或建筑物的遮挡&#xff0c;卫星信号往往无法直接…

无线领夹麦克风哪个牌子好,揭秘口碑最好降噪领夹麦排行榜

在这个短视频如日中天的时代&#xff0c;无数自媒体创作者纷纷借助这一媒介&#xff0c;通过直播带货、分享生活点滴、在线卡拉OK等形式&#xff0c;捕捉并分享生活中的美好时刻。一个成功的短视频&#xff0c;不仅需要创意构思和稳定的画面质量&#xff0c;更离不开清晰纯净的…

【CSS in Depth 2 精译】2.6 CSS 自定义属性(即 CSS 变量)+ 2.7 本章小结

文章目录 2.6 自定义属性&#xff08;即 CSS 变量&#xff09;2.6.1 动态变更自定义属性 2.7 本章小结 当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性 …

【日常记录】【插件】js 获取浏览器信息、操作系统等相关信息

文章目录 1. 原生方式2. 插件的方式2.1 Bowser 的基本使用2.2 UAParser2.3 Platform.js 参考链接 1. 原生方式 原生方式可以通过 navigator.userAgent 来获取 需要写一个正则来匹配&#xff0c;获取相关的信息 2. 插件的方式 获取浏览器版本相关信息的库主要有以下几个 Bowser&…

从零开始做题:easycap

题目 给出一个pcap文件 解题 注&#xff1a;传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议 .pcap文件需要用Wireshark打开 用Wireshark打开easycap.pcap文…

leetcode--层数最深叶子节点的和

leetcode地址&#xff1a;层数最深叶子节点的和 给你一棵二叉树的根节点 root &#xff0c;请你返回 层数最深的叶子节点的和 。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,4,5,null,6,7,null,null,null,null,8] 输出&#xff1a;15 示例 2&#xff1a; 输入&#xff…

16张支付牌照将到期,新规落地以来,支付牌照的首次续展。

7月9日&#xff0c;包括瑞银信、乐刷、畅捷支付在内的16家第三方支付机构的支付牌照将到期&#xff0c;这些公司面临续展的重大考验。 这是《非银行支付机构监督管理条例》实施以来&#xff0c;支付牌照的首次续期。 其中&#xff0c;最受瞩目的可能是瑞银信。在范一飞落马后&a…

AI绘画:艺术与科技的交融,创新浪潮与无限可能

在科技日新月异的当下&#xff0c;AI 绘画作为人工智能领域的一颗璀璨新星&#xff0c;正以惊人的速度在国内崭露头角&#xff0c;引发了艺术与技术交融的全新变革。随着人工智能技术的飞速发展&#xff0c;AI绘画已成为艺术与科技交融的新宠。2024年&#xff0c;AI绘画行业在国…

最新版萌新Python看过最好的电子书?

我之前写过一篇 Python 入门看哪些书的文章&#xff0c;文章中罗列了 5 位大佬的书单推荐&#xff0c;在这个基础上我总结了自己看过的书单。你要是不知道学 Python 看什么书好&#xff0c;不妨参考一下&#xff1a; 一晃就到了月末&#xff0c;2020年也过去了 2 个月&#xf…

mysql数据库中的视图view的概念和详细说明

目录 一、定义 二、视图view的分类 &#xff08;一&#xff09;按功能和特性分类 1、普通视图&#xff08;Regular View/Standard View&#xff09; 2、索引视图&#xff08;Indexed View&#xff09; 3、分割视图&#xff08;Partitioned View/Distributed Partitioned …

【pytorch23】MNIST测试实战

理解 训练完之后也需要做测试 为什么要做test&#xff1f; 上图蓝色代表train的accuracy 下图蓝色代表train的loss 基本上符合预期&#xff0c;随着epoch增大&#xff0c;train的accuracy也会上升&#xff0c;loss也会一直下降&#xff0c;下降到一个较小的程度 但是如果只看…

世上最懂交易原理的是佛学

僧肇《肇论不空真论》思想非有非無逻辑 价值观矛盾冲突时&#xff08;不落两边&#xff09;&#xff0c;血性即行迹逻辑&#xff08;俗谛&#xff09;&#xff0c;才气即逻辑心证&#xff08;真谛&#xff09;&#xff1b;意气即是美&#xff0c;美即是意气&#xff1b;一切以…

使用bypy丝滑传递百度网盘-服务器文件

前言 还在为百度网盘的数据集难以给服务器做同步而痛苦吗&#xff0c;bypy来拯救你了&#xff01;bypy是一个强大而灵活的百度网盘命令行客户端工具。它是基于Python开发的开源项目&#xff0c;为用户提供了一种通过命令行界面与百度网盘进行交互的方式。使用bypy&#xff0c;…