文章目录

  • 前言
    • 接第三期:
  • 一、BMI具体指什么?
  • 二、技术准备(需要学习了解的技术)
    • 1.变量
    • 2.标识符
    • 2.基本符号
    • 3.数据类型
    • 4.数据类型转换
    • 5.运算符
    • 6.选择结构
  • 一、BMI如何计算
  • 总结

前言

本期我们讲一起学习Java语言的基本符号、基本数据类型和运算符,以及分支流程控制语句:


接第三期:

  1. 强化训练

  2. 练习:
    Java区分大小写。
    Java关键字是小写。
    编译Java程序的命令是javac 程序名.java。
    运行Java程序的命令是java 程序名。
    在控制台打印字符串(比如上面的打印Hello World)的语句是【sout】(【System.out.println();】)。
package com.luoyu.helloworld;public class HelloWorld2 {public static void main(String[] args) {System.out.println("**********************");System.out.println("*   Hello World!    *");System.out.println("**********************");}
}

一、BMI具体指什么?

BMI:体重指数,又称身体质量指数(Body Mass Index,BMI)是用体重公斤除以身高的数平方得到的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。男性<20过轻,20-25适中,25-30过重,30-35肥胖,>35属于非常肥胖。女性<19过轻,19-24适中,24-29过重,29-34肥胖,>34属于非常肥胖。无论男女,理想指数都应是22左右。

二、技术准备(需要学习了解的技术)

1.变量

变量主要用于保存输入、输出和程序运行过程中的中间数据。在Java中,每一个变量都属于某种类型。在使用变量前,要先对变量进行声明。

  1. 声明变量:
    在声明变量时,变量所属的类型位于前面,随后是变量名:
    double salary;
    String name;
    int x,y;
    在Java中,声明变量是一条完整的语句,每一个声明语句后面都要跟分号来做结束。

  2. 初始化变量:
    int age;
    age=20;
    System.out.println(age);

  3. 变量可以声明的同时赋值:
    int age2=21;
    System.out.println(age2);

2.标识符

标识符是用户定义的用于表示变量名、类名、接口名、方法名、方法参数名等的符号,且遵循一定的规则:

  1. 由字母、下划线、$符号组成,对标识符的长度没有特别限制;
  2. 必须以字母、下划线、或$符号开头;
  3. 标识符区分大小写;
  4. 标识符不能用系统的保留字(关键字);

2.基本符号

和其他语言相同,Java程序也是由多个文件组成的,每个文件又是由很多代码组成,每个代码行是由一些基本符号组成:

  1. 数字常量:
    数字常量是由0到9这10个符号组成,用于表示数字,同数学一样可以用“-”表示复数。

  2. 字符常量:
    Java中的字符常量是使用英文单引号括起来的某个字符,例如’a’。字符常量可以是数字,如’0’,虽然里面是数字0,但在这里是字符’0‘。Java使用Unicode编码,所以字符常量可以用于表示汉字。

  3. 字符串常量:
    字符串常量是使用英文双引号括起来的字符序列,例如"Hello World",用双引号括起来的即使只有一个字符也是字符串常量。

  4. 布尔常量:

  5. 布尔常量只有两个值:true和false。true表示“真”,false表示“假”。

3.数据类型

  1. int是整形中的默认类型,double是浮点数中的默认类型
  2. long类型赋值时后面要加上【l或者L】,float类型赋值时后面要加上【f或者F】

4.数据类型转换

  1. 自动类型转换:类型范围小的变量,可以直接赋值给类型范围大的变量(为什么要进行类型转换:存在不同类型的变量赋值给其他类型的变量)
    byte->short->int->long->float->double
    char->int->long->float->double

  2. 表达式的自动类型转换:在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算
    byte、short、char->int->long->float->double
    1、表达式的最终结果类型是由表达式中的最高类型决定
    2、在表达式中,byte、short、char是直接转换成int类型参与运算的
    byte a=100;byte b=120;int c=a+b;

  3. 强制类型转换:强行将类型范围大的变量、数据赋值给类型范围小的变量(只能准确转换出原本在类型范围小的变量的范围中的变量、数据)
    1、数据类型 变量2 = (数据类型)变量1、数据
    int a=20;byte b=(byte)a;
    2、强制类型转换可能造成数据(丢失)溢出
    3、浮点型强转成整形,直接丢掉小数部分,保留整数部分返回

5.运算符

  1. 算数运算符:+、-、*、/、%分别表示加、减、乘、除、求余。“+”、“-”也可以做单目运算符,表示“正”和“负”。

  2. 赋值运算符

    1、基本赋值运算符
    “=”“是赋值运算符,把右边的表达式赋值给左边的变量。
    2、复合赋值表达式
    赋值运算符与其他运算符结合使用完成赋值

  3. 自增自减运算符
    1、自增运算符:把自身增加1
    y=x++;==y=x;x=x+1
    y=++x;==x=x+1;y=x;
    运行顺序不一样,值也会不一样,一般只会用【++x】。即让数自增1然后再参与运算。

  4. 比较运算符
    比较(关系)运算符用于对两个值进行比较,其返回值为布尔类型
    比较运算符有:>、>=、<、<=、==、!=,分别表示大于、大于等于、小于、小于等于、等于、不等于。

  5. 逻辑运算符
    1、“&&”和“&”都是逻辑与,只有当两个操作都为true的时候,结果才为true
    2、“||”“|”都是逻辑或,只有当两个操作都为false的时候,结果才为false
    3、“!”是逻辑非,如果操作数为false,结果为true,如果操作数为true,结果为false
    4、“^”是逻辑异或,如果两个操作数不同,结果为true,如果两个操作数相同,结果为false
    一般用双与和双或,双与“&&”只要有一个为false就为false,不会再去看另外一边的式子,双或“||”只要有一个为true就为true,不会再去看另外一边的式子。

  6. 位运算符
    位运算符有:&、|、~、^,分别表示按位与、按位或、按位非、按位异或

  7. 移位运算符
    <<是左移
    >>是右移
    >>>是无符号右移

  8. 条件运算符(三目运算符)
    基本格式:op1?op2:op3
    op1的结果为布尔类型,如果op1的值为true,则表达式结果为op2,如果op1的值为false,则最后的结果为op3

  9. 字符串连接运算符
    “+”可以用来连接运算符,其中至少要有一个是字符串,另外一个就可以是任意数据类型或是任意类的对象

package com.luoyu.bmi;import java.util.Date;public class OperatorDemo {public static void main(String[] args) {System.out.println("----------------------1、算数运算符-------------------------");
/*1、算数运算符*///定义整形变量a,b,并分别赋值10和20int a=20;int b=20;//分别进行加减乘除和求余运算int sum=a+b;int sub=a-b;int mul=a*b;int div=a/b;int res=a%b;//输出运算结果System.out.println("a="+a+",b="+b);System.out.println("a+b="+sum);System.out.println("a-b="+sub);System.out.println("a*b="+mul);System.out.println("a/b="+div);System.out.println("a%b="+res);System.out.println("----------------------2、赋值运算符-------------------------");
/*2、赋值运算符*///使用复合赋值方法计算表达式x+3,并把结果赋值给xint x=3;x+=3;System.out.println(x);//不使用复合赋值表达式计算y+3,并把结果赋值给yint y=4;y=y+4;System.out.println(y);System.out.println("----------------------3、自增自减运算符-------------------------");
/*3、自增自减运算符*/int c=0;int d=0;//赋值之后再+1int e=c++;//此时//赋值之前先+1int f=++d;//此时System.out.println(e);System.out.println(f);System.out.println("----------------------4、比较运算符-------------------------");
/*4、比较运算符*/int g=3;int h=4;boolean bigger = g > h ;boolean less = g < h ;boolean biggerEqual = g >= h ;boolean lessEqual = g <= h ;boolean equal= g ==h ;boolean unequal = g != h ;System.out.println("g是否大于h?        "+bigger);System.out.println("g是否小于h?        "+less);System.out.println("g是否大于等于h?    "+biggerEqual);System.out.println("g是否小于等于h?    "+lessEqual);System.out.println("g是否等于h?        "+equal);System.out.println("g是否不等于h?      "+unequal);System.out.println("----------------------逻辑运算符-------------------------");
/*5、逻辑运算符*/boolean b1=true;boolean b2 =false;//进行各种布尔运算,并输出结果System.out.println("b1&&b2="+(b1&&b2));System.out.println("b1&b2="+(b1&b2));System.out.println("b1||b2="+(b1||b2));System.out.println("b1|b2="+(b1|b2));System.out.println("!b1="+!b1);System.out.println("b1^b2="+(b1^b2));System.out.println("----------------------6、位运算符-------------------------");
/*6、位运算符*///难理解,还一般用不上,就不写了System.out.println("----------------------7、移位运算符-------------------------");
/*7、移位运算符*/int aa=10;int bb =2;int cc=-3;//左移//aa<<bb,aa是要移位的数,bb是要移动的位数,结果相当于aa乘以2的bb次方,即=10*(2^2)System.out.println("aa<<bb="+(aa<<bb));
//难理解,还一般用不上,就不写了System.out.println("----------------------8、条件运算符-------------------------");
/*8、条件运算符*/int o=10;int p=7;int q;//如果o>p,把o赋值给q,如果p>o,把p的值赋值给qq = o>p?o:p;System.out.println("o和p之间的最大值是"+q);System.out.println("----------------------9、字符串连接运算符-------------------------");
/*9、字符串连接运算符*/byte link1=3;short link2=4;int link3=5;long link4=15;float link5=69f;double link6=19.7;char link7='a';boolean link8=true;//获取当前时间,Java自带的包Date link9=new Date();System.out.println("byte类型:"+link1);System.out.println("short类型:"+link2);System.out.println("int类型:"+link3);System.out.println("long类型:"+link4);System.out.println("float类型:"+link5);System.out.println("double类型:"+link6);System.out.println("char类型:"+link7);System.out.println("boolean类型:"+link8);System.out.println(link9);}
}

6.选择结构

再程序执行的过程中,根据特定条件执行某些语句,就叫选择结构
选择结构包括:if和switch

if语句:if语句就是在满足一定条件的时候,执行某些语句。

基本结构:
if(条件表达式)
{
语句
}
---------------------------------------------
if(条件表达式)
{
语句1
}else{
语句2
}
---------------------------------------------
if(条件表达式)
{
语句1
}else if{
语句2
}else{
语句3
}

条件表达式的结果必须是boolean类型的值,要执行的语句可以是多条,每条语句以分号结束即可。多个条件判断可以直接嵌套,俗称套娃:满足一个条件,进到if里面去,然后再判断是否满足条件,满足了再进到这个if里面。

switch语句:在多种情况中只选择一个执行,根据整形变量的值,输出不同的内容,就可以使用switch。
基本结构:
switch(表达式)
{
case 值1:语句1
case 值2:语句2
case 值...:语句...
case 值n:语句n
defaule:语句n+1
}
default的功能相当于if…else中的else,是在case语句都没执行的情况下执行的。
使用switch的时候要在case语句的最后加上break,这个代表退出switch选择,不然的话switch会把里面所有的case和default所对应的语句全部执行一遍。

package com.luoyu.bmi;public class ChooseDemo {public static void main(String[] args) {System.out.println("------------------1、单if语句-------------");/*1.单if语句*/int a=10;int b=8;//先把a的值赋值给max,然后进行判断int max=a;//单ifif (a<b){max=b;}if (a>b){max=a;}System.out.println(max);//if...else语句System.out.println("------------------2、if...else语句-------------");int a2=15;int b2=16;int max2=a2;if (a2>b2){max2=a2;}else {max2=b2;}System.out.println(max2);System.out.println("------------------3、if...else if...else语句-------------");//if...else if...else语句int a3=9;int b3=9;int max3=a3;if (a3>b3){max3=a3;System.out.println(max3);}else if (a3==b3){System.out.println("这两个值一样大!");}else {max3=b3;System.out.println(max3);}System.out.println("------------------4、switch语句-------------");//在多种情况中只选择一个执行,根据整形变量的值,输出不同的内容,就可以使用switchint  a4=2;switch (a4){case 1 :System.out.println("第一个选项,代表a4的值为1");case 2 :System.out.println("第二个选项,代表a4的值为2");case 3 :System.out.println("第三个选项,代表a4的值为3");case 4 :System.out.println("第四个选项,代表a4的值为4");default:System.out.println("a4的值不合法");}System.out.println("-----------------------------");char a5=3;switch (a5){case 1 :System.out.println("第一个选项,代表a4的值为1");break;case 2 :System.out.println("第二个选项,代表a4的值为2");break;case 3 :System.out.println("第三个选项,代表a4的值为3");break;case 4 :System.out.println("第四个选项,代表a4的值为4");break;default:System.out.println("a5的值不合法");break;}}
}

一、BMI如何计算

package com.luoyu.bmi;import java.util.Scanner;public class BMIDemo {public static void main(String[] args) {//创建Scanner对象Scanner sc=new Scanner(System.in);/**从键盘输入性别,升高,体重* 输入整数0表示女1表示男* 身高使用浮点数,精确到小数位后两位,单位(米)* 体重使用公斤*/System.out.println("请输入性别:0表示女,1表示男");int sex=sc.nextInt();System.out.println("请输入身高,精确到小数点后两位,单位(米)");double length=sc.nextDouble();System.out.println("请输入体重,单位(公斤)");double weight=sc.nextDouble();double bmi=weight/length/length;System.out.println("你的体重指数是:"+bmi);System.out.println("你的健康程度是:");if (sex==0){if (bmi < 19) {System.out.println("女生,体重过轻,建议加强营养补充!");}else if (bmi<24){System.out.println("女生,体重适中,请保持!");}else if (bmi<29){System.out.println("女生,体重过重,注意锻炼身体!");}else if (bmi<34){System.out.println("女生,属于肥胖行列,建议保持饮食习惯!");}else {System.out.println("女生,属于非常肥胖行列,建议减肥!");}}else {if (bmi <20) {System.out.println("男生,体重过轻,建议加强营养补充!");}else if (bmi<25){System.out.println("男生,体重适中,请保持!");}else if (bmi<30){System.out.println("男生,体重过重,注意锻炼身体!");}else if (bmi<35){System.out.println("男生,属于肥胖行列,建议保持饮食习惯!");}else {System.out.println("男生,属于非常肥胖行列,建议减肥");}}System.out.println("BMI指数最理想的是22,为了健康的身体,你要加油哦!");}
}


总结

  1. 我有一些东西没讲,希望朋友们有不懂的的时候能去直接上网搜,写程序就是要让自己没有一丝一毫的问题,特别是刚开始学的时候,遇到问题一定要解决,解决过的问题一定要记录下来,防止下次遇到。
  2. 初学者的朋友们,复制代码时不要直接全部复制完然后整个放到你的项目中去,要注意main方法和类名:
    把上面和下面的全删掉,值保留中间的部分,就能直接放在你创建的类里面去运行了。还有,Java程序是通过main方法运行的,别忘了给你的类添加main方法。

【一起学Java第四期】BMI体重指数计算器相关推荐

  1. total_method写四个函数 分别包含bmi体重指数计算器、出租车费用计算器、个税计算器、猜数字游戏

    '''写四个函数 分别包含bmi体重指数计算器.出租车费用计算器.个税计算器.猜数字游戏 ''' # 使用到python中的内置的random模块 # 引入random模块 import random ...

  2. python代码测试健康指数计算器_python编写的bmi体重指数计算器、出租车费用计算器、个税计算器、猜数字游戏...

    ''' 写四个函数 分别包含bmi体重指数计算器.出租车费用计算器.个税计算器.猜数字游戏 ''' #体重指数计算器 def bmi(): while 1: #声明变量 身高.体重 height=in ...

  3. 安卓bmi项目_身高体重指数计算器手机版|bmi体重指数计算器安卓版下载 v1.0.0 - 跑跑车安卓网...

    bmi体重指数计算器是一款手机计算器工具软件,为用户进行身高体重的bmi计算,让你知道你的肥胖特征,让你能够知晓更好去保持好身材,快来下载使用. 软件介绍 体重指数计算器 描述 本应用程序是一款免费的 ...

  4. 类的应用: 1.bmi体重指数计算器 2.taxi出租车费用计算器 3.猜数字 4.税率

    1.bmi体重指数计算器 class BMI(object):def bmi(self):while True:# 声明变量 身高.体重height = input('请输入您的身高(m):')wei ...

  5. 教妹学Java(十四):switch 语句详解

    大家好,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.本篇文章通过我和三妹对话的形式来谈一谈"switch 语句". 教妹学 Java,没见过这么有趣的标题吧?&q ...

  6. 一起学 Java(四) File、Try 、序列化、MySQL、Socket

    一.Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基 ...

  7. 学Java的四天(在入土的边缘疯狂试探。。。)

    嘛,今天终于出太阳了,感觉人生又有了希望,而今天学的是判断之类的东西,还好我在这种方面很少栽跟头,就好像我的人生前途光明??? 今天的内容如下: /**     字符串:String(不是基础数据类型 ...

  8. 从头学Java(四)控制语句1(带小练习)

    条件判断语句 if单分支结构-if(布尔表达式){语句块} 例子: package cn.wq;/** * 测试if语句,一个简单的骰子游戏. */ public class Testif01 {pu ...

  9. 新手学JAVA(四)----装箱与拆箱

    一 什么是装箱?什么是拆箱? 在Java中,Java对每种基本数据类型都提供了对象的包装器类型.看下表: 包装类对应表 基本数据类型 包装类 byte Byte boolean Boolean sho ...

最新文章

  1. 《Learning Scrapy》(中文版)第11章 Scrapyd分布式抓取和实时分析
  2. java程序无法连接redis_无法使用jedis连接到redis
  3. 【原创】RabbitMQ 之 Access Control(翻译)
  4. Android recovery支持adb shell
  5. linux 端口 镜像吗,Linux如何实现镜像端口
  6. java 反射实现 工厂模式_java – 用反射实现工厂模式
  7. CVPR2019 | AlphaPose升级!上交大开源密集人群姿态估计代码
  8. 【LeetCode】剑指 Offer 27. 二叉树的镜像
  9. json转对象参数不匹配问题
  10. 红队技术-父进程伪装(MITRE ATTCK框架:T1134)
  11. ctfshow 做题 MISC入门 模块 21~30
  12. android之标准体重
  13. Python——requests模块详解
  14. PCL入门系列 —— PassThrough 直通滤波、点云裁剪
  15. EditText 里的属性
  16. 10个小技巧,让你的谱面更专业
  17. 企业面临的7大数据分析挑战
  18. 快速Linux重装XP系统
  19. 微软快捷键截图_所有最好的Microsoft Word键盘快捷键
  20. 093【RTKLIB源码之postpos-9】刨根问底

热门文章

  1. 高项_第七章项目成本管理
  2. android中留言板功能,Android -- 留言板的简单实现
  3. Vmware15 + Ubuntu18.0.4 安装教程(史上最详细记录)【多图预警】
  4. 笔记本计算机打开任务管理器,笔记本电脑按哪个键打开任务管理器
  5. win7打开任务管理器的快捷键
  6. 曾经人见人爱花见花开的zookeeper为啥突然不香了呢
  7. 【怎么突破安全狗和360网站卫士的】
  8. 【写在七夕浪浪漫时刻】Go中遇到http code 206和302的获取数据的解决方案
  9. 网络通信、UDP通信、TCP通信、BS架构模拟、URL了解
  10. 从苏宁电器到卡巴斯基第25篇:难忘的三年硕士时光 I