【Java】02--变量与数据类型Scanner

news2024/12/25 22:13:14

文章目录

    • 1.什么是常量,什么是变量
    • 2.数据类型
      • 2.1什么是数据类型转换
    • 3.为什么要使用Scanner

1.什么是常量,什么是变量

你只需要记住两点:

常量:就是一种不会根据环境而改变的数据,例如:圆周率。
变量:是一种能够根据不同环境产生不同值的数据,例如:手机电量。

在 Java中,我们通过三个元素描述变量:变量类型、变量名以及变量值。
在Java中的变量类型又有哪些呢?在JAVA中变量类型大致可以分为两种一种是数值类型,一种是非数值类型,数值类型又分为两种:整形和非整形如图所示:
在这里插入图片描述
接下来我们就要开始定义变量了,需要四个步骤。

  • 确定变量类型
  • 取变量名
  • 给变量赋初值
  • 分号结尾
  • 由字母,下划线,美元符号($),数字组成,但第一个字符不能是数字。

    如果变量名是复合型的那么我们采用驼峰式,或者蛇形式的方式。 驼峰式:teaCup(表示茶杯的意思),stuAge(学生年龄) 蛇形式:tea_cup,stu_age
    如果是单个单词就全小写就行了。
    千万不要用中文拼音来表达:例如学生年龄:xueShengNianling。
    在一个方法中变量名不能重复。

    变量一定要给自己一个确定的类型。

    2.数据类型

    Java基本类型共有八种,基本类型可以分为三类,

  • 字符类型char
  • 布尔类型boolean
  • 数值类型byte、short、int、long、float、double
  • 数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。

    JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。8 种类型表示范围如下:

    1、byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
    2、short:16位,最大数据存储量是65536,数据范围是-32768 ~ 32767之间。
    3、int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
    4、long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
    5、float:32位,数据范围在3.4e-45 ~ 1.4e38,直接赋值时必须在数字后加上f或F。
    6、double:64位,数据范围在4.9e-324 ~ 1.8e308,赋值时可以加d或D也可以不加。
    7、boolean:只有true和false两个取值。
    8、char:16位,存储Unicode码,用单引号赋值。

    在这里插入图片描述
    在这里插入图片描述

    2.1什么是数据类型转换

    顾名思义,数据类型转换就是指:不同数据类型之间的相互转换
    关于数据类型转换只需要你掌握两种方式:

    1.自动类型转换
    2. 强制类型转换

    自动类型转换
    关于自动类型转换你只需要记住一句话,就是:表数范围小的可以向表数范围大的进行自动类型转换
    你可以这样理解:当一个小的容器的水换到一个大的容器中毫无问题,但是一个大的容器的水换成小的容器可能会装不下,就会溢出。
    如下图:
    在这里插入图片描述
    强制类型转换
    你肯定会有疑问,既然自动类型转换只能是表数范围小的可以向表数范围大的转换那么我在实际使用中想要将表述范围大的向小的转换怎么办呢?诶这里就要用到强制类型转换了,顾名思义,强制类型转换就是将:表数范围大的数向表数范围小的进行转换。
    那怎么使用强制类型转换呢?

    double b = 10.2;
    int a = (int)b
    

    3.为什么要使用Scanner

    我们前面所有的章节的练习一直都是输出一段数据,我们知道一个软件是既要有输出也需要有输入的。而Scanner就是用于用户在Java程序中输入数据的。
    所以对于Scanner你可以理解为,它就是一个扫描仪,用来获取我们从键盘输入的数据。
    怎么使用?
    你只需要记住三个步骤:

    1.在类的声明之前,引入扫描仪(Scanner):import java.util.Scanner;
    2.在方法中创建一个扫描仪 Scanner input = new Scanner(System.in);
    3.通过扫描仪获取从键盘输入的数据 int i = input.nextInt();

    在这里插入图片描述

    package chapter2.step7;
    /********* Begin *********/
    import java.util.Scanner; //1.导入Scanner
    
    
    public class HelloWorld{
    	public static void main(String[] args){
            Scanner input = new Scanner(System.in);//2.声明扫描仪
            int age = input.nextInt();//3.获取键盘输入的整数数据
            System.out.println(age);//输出
    		
    		/********* End *********/
    	}
    }
    

    提示:Scanner不能获取char(字符)类型,获取小数类型需要使用nextDouble方法或者是nextFloat方法

    //获取输入的小数
    double d = input.nextDouble();//获取输入的双精度类型数据
    float f = input.nextFloat();//获取输入的单精度类型数据
    
    package chapter2.step7;
    /********* Begin *********/
    import java.util.Scanner; //1.导入Scanner
    
    
    public class HelloWorld{
    	public static void main(String[] args){
            System.out.println("请录入嫦娥个人信息:");
            Scanner input = new Scanner(System.in);//2.声明扫描仪
             System.out.println("请输入姓名:");
            String name = input.next();
    
            System.out.println("请输入年龄:");
            int age = input.nextInt();//3.获取键盘输入的整数数据
           
            System.out.println("请输入性别:");
            String sex = input.next();
            System.out.println("请输入体重:");
            float weight = input.nextFloat();
            System.out.println("请输入地址:");
            String address=input.next();
            System.out.println("请输入是否已婚:");
            String flag = input.next();
            System.out.println("信息如下:");
            System.out.println('\t'+"姓名:"+name);
            System.out.println('\t'+"年龄:"+age+"岁");
            System.out.println('\t'+"性别:"+sex);
            System.out.println('\t'+"体重:"+weight+"kg");
            System.out.println('\t'+"地址:"+address);
            System.out.println('\t'+"婚否:"+flag);
    		
    		/********* End *********/
    	}
    }
    

    取款机内容

    package step4;
    
    import java.util.Scanner;
    
    public class ForPractice4 {
    	public static void main(String[] args) {
    		/*****start*****/
            Scanner input = new Scanner(System.in);
            System.out.println("欢迎使用中国人民银行ATM取款机");
           
    
    
            int money=1000;
            int flag=2;
            while(flag==2){
                // 进入取款界面
                System.out.println("输入取款金额:");
                int score = input.nextInt();
                if(score<=money){
                    money-=score;
                   System.out.print("剩余金额:"+money+",是否继续('1':结束,'2':继续):");
                   flag=input.nextInt();
                   System.out.print("\n");
                }else{
                    System.out.println("目前余额:"+money+"无法满足您的取款需求!");
                    continue;
                }
                
            }
            System.out.println("取款结束!");
    
    
    		
    		
    		
    		
    		
    		/*****end*****/
    	}
    }
    

    三个数字比大小

    package step4;
    
     
    public class LianXi_Sort {
    
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		/*
    		 * 定义三个整数x,y,z,将这三个整数由小到大排序并输出。
    		 * 例如定义 int x = 9; int y = 10; int z = 8;   -- > x的值改成8  y的值改成9 z的值改成10
    		 * 
    		 * 实现思路:通过if语句对x y z 的值进行匹配,比如x大于y则x和y进行数据交换
    		 * */
    		 java.util.Scanner sc = new java.util.Scanner(System.in);
    		//获取平台分配的x的值
    		int x = sc.nextInt();
    		//获取平台分配的y的值
    		int y = sc.nextInt();;
    		//获取平台分配的z的值
    		int z = sc.nextInt();;
    
    		/**********begin**********/
            sc.close();            //使用完键盘输入后关闭
            int temp;
    
            if(x>y) {               //如果x>y那么x,y需要交换位置
    
                temp=x;          //借助temp变量,将二者间的大数x存在temp中
    
                x=y;                //让小数y到x的位置
    
                y=temp;   //让大数x(即此时的temp)到y的位置,这时x y中的数就是从小到大的顺序
    
            }
    
            if(x>z) {            //如果x>z那么x,z需要交换位置
    
                temp=x;  //借助temp变量,将二者间的大数x存在temp中
    
                x=z;        //让小数z到x的位置
    
                z=temp;    //让大数x(即此时的temp)到z的位置,这时x z中的数就是从小到大的顺序
    
            }
    
            if(y>z) {                //如果y>z那么y,z需要交换位置
    
                temp=y;    //借助temp变量,将二者间的大数y存在temp中
    
                y=z;         //让小数z到y的位置
    
                z=temp;  //让大数y(即此时的temp)到z的位置,这时y z中的数就是从小到大的顺序
    
            }
    
          
    
           
    
    	   
    
    
    	    /**********end**********/
    		System.out.print("x:"+x+" y:"+y+" z:"+z);
    		
    	}
    
    }
    
    

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

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

相关文章

网络io模型、同步异步及Sanic和uvloop

网络io模型及基础概念 概念说明 用户空间与内核空间 操作系统的核心是内核&#xff0c;独立于普通的应用程序&#xff0c;可以访问受保护的内存空间&#xff0c;也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核&#xff08;kernel&#xff09;&#xff0…

银河麒麟系统安装mysql数据库[mysql-5.7.28-linux-glibc2.12-x86_64]

银河麒麟系统安装mysql数据库 1.1 准备材料 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz MySQL5.7下载地址 https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 1.1 安装前准备工作 1、检查是否已经安装MySQL [rootlocalhost ~]# rpm …

使用虚拟引擎创建海盗船长角色分解

介绍 你好&#xff01;我叫 Stapan&#xff0c;我是电影和电影的角色艺术家&#xff0c;我有在动画工作室担任自由艺术家和角色艺术家的经验&#xff0c;现在我正在与 Artem Gansior 领导的 ODEE 团队一起制作一部短片。 参考 对于这个项目&#xff0c;最初的角色概念是由超…

MAYA曲线粒子

不从粒子中心发射 nParticleShape1.massrand(0.5,0.7);

【Linux】Linux服务器硬件条件的查看

【Linux】Linux服务器硬件条件的查看 文章目录 【Linux】Linux服务器硬件条件的查看1. CPU条件查看1.1 查看CPU 个数1.2 查看 CPU 物理核数1.3 查看CPU的运行模式1.4 查看 CPU 的型号 2. GPU 条件查看3. 查看磁盘空间、内存、Linux内核当前的系统版本号3.1 磁盘空间3.2 内存3.3…

电源自动化测试系统一站式软硬件解决方案ATECLOUD-Power

*测试系统&#xff1a;本系统是专门针对各类电源模块测试的一体化智能解决方案&#xff0c;此框架结构可根据客户实际测试需求以及预算进行调整&#xff0c;经济适用。 *测试产品&#xff1a;DC-DC电源模块、AC-DC电源模块、车用电源模块、机载电源模块、军用电源模块、特种电源…

A2B音频传输误码率测量方法

+hezkz17进数字音频系统研究开发交流答疑 如何测量音频传输误码率? 2023/6/27 14:03:58 要测量音频传输误码率,可以采取以下步骤: 选择合适的测试设备和仪器:使用专门用于音频传输测试的设备,例如音频信号发生器、示波器和频谱分析仪等。 设置测试场景:确保测试环境符合…

C语言time(NULL)学习

根据资料&#xff1b;如下一段代码&#xff1b; clock_t a,b; float cputime; atime(NULL);for (intz0;z<10000000;z){ float f0; for (int i 0; i<n; i)f h_idata[i]; }btime(NULL); cputime(float)(b-a); printf("cuptime%fmseconds\n",cputime); 前后2个…

Linux——2Linux基础命令

目录 2.1 Linux的目录结构 2.2 Linux命令入门 ls命令 Home目录和工作目录 2.3 目录切换相关命令 cd 切换工作目录 pwd 查看当前工作目录 2.4 相对路径、绝对路径和特殊路径符 相对路径和绝对路径 特殊路径符 2.5 创建目录命令mkdir 2.6 文件操作命令 touch、cat、…

文本分析-使用jieba库实现TF-IDF算法提取关键词

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

合宙Air724UG Cat.1模块硬件设计指南--外部SPI Flash

概述 我们可以通过标准的SPI接口和QSPI接口来外挂flash。区别如下 使用标准SPI接口外挂flash&#xff0c;需要自己实现flash驱动&#xff0c;和自己移植文件系统 使用QSPI接口外挂flash&#xff0c;不需要自己实现flash驱动&#xff0c;也不需要移植文件系统 。通过mount接口挂…

医院电气能源管理与节能措施讨论

摘要&#xff1a;随着我国经济建设的不断加快&#xff0c;我国能源消耗也越来越大&#xff0c;如何通过电气能源管理实现节能是各行各业都在研究的课题。医院作为我国重要的医疗服务机构&#xff0c;能源管理是医院管理中的重要组成部分。本文将针对医院电气能源管理与节能措施…

maven Nexus 私库安装使用总结

maven Nexus私库安装使用总结 大纲 nexus安装总结nexus使用总结域名配置admin账号密码修改创建仓库组创建仓库创建权限创建角色创建用户mvn deploy 部署配置 nexus安装总结 本例子使用的是常见的nexus2.x版本 注意需要先安装JDK Nexus 专业版是需要付费的&#xff0c;这里…

硬件学习 软件 Cadence day11 PCB 设计中 临时 的翻转/旋转快捷键设置等

1. PCB设计中多种快捷键设置 (临时的) 1.1 旋转 90 快捷键设置 &#xff08;角度自己可以改 &#xff09; alias ~R angle 90 #CtrlR 1.2 元器件 底层 和 顶层交换的快捷键 &#xff08;临时的&#xff09; alias ~F mirror #Ctrl F 参考文章&#xff1a;Cadenc…

数据结构--单链表的建立

数据结构–链表的建立 目标&#xff1a; Step 1:初始化一个单链表 Step 2:每次取一个数据元素&#xff0c;插入到表尾/表头 尾插法建立单链表 代码实现 typedef struct LNode {int data;struct LNode *next; }LNode, *LinkList;LinkList List_TailInsert(LinkList &L) {…

vditor 自定渲染,lute.js api

渲染器函数 目前支持的渲染回调场景如下&#xff1a; 即使渲染&#xff1a;IR -> SpinVditorIRDOM 分屏&#xff1a;sv -> SpinVditorSVDOM 所见所得&#xff1a;wysiwyg -> SpinVditorDOM // 自定义回调 vue 为例子 after: function () {this.vditor.vditor.lute.Se…

2023年城市分站系统源码采用php语言

系统源码介绍&#xff1a; 本系统采用了php语言&#xff0c;根据现有了城市分布&#xff0c;包含了省市区&#xff0c;划分&#xff0c;具备了高级少选功能&#xff0c;按照每个市级城市为分站点&#xff0c;和主站点同样的模式。 安装方法&#xff1a; 快速创建几百个城市分…

如何使用配置文件参数 - 实现预训练模型训练

如何使用配置文件参数 - 实现预训练模型训练 引言为什么使用配置文件来预训练模型呢 配置文件结构举例实现通过配置文件训练模型如何微调配置文件训练出优秀的模型呢数据集特征模型架构先前研究和经验超参数调优迭代实验和评估 引言 预训练模型在各个领域的应用取得了显著的成…

实现简单的自定义曲线图

实现的效果 废话不多说看源码 package com.unite.module_index_pad.utils;import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.LinearGradient; import androi…

浅谈“信创”时代,恒辉软件发展前景

随着中国的发展&#xff0c;很多技术因为一些原因越来越受制于人&#xff0c;尤其是上游核心技术。为了解决这个问题&#xff0c;中国明确了“数字中国”建设战略&#xff0c;抢占数字经济产业链制高点。 自主创新与国产化已成为我国实现科技强国、经济强国的发展趋势与行业共…