目录

数据类型转换

问:不同数据类型能否一起运算?

答:能

1.1 自动类型转换(隐式)

概念:不同数据类型运算时,数据范围小的数据类型会自动转换成范围大的数据类型

byte->short->int->long->float->double

格式:范围大的数据类型 变量名 = 范围小的数据类型的值;

1.2 强制类型转换(强转)

概念:使用特定格式将数据范围大的值转换成数据范围小的类型

格式:范围小的数据类型 变量名 = (目标类型)范围大的数据值;

注:

1、基本数据类型不建议使用强制类型转换

2、byte、short、char在运算时,会自动转换成int

流程控制

功能含义:就是控制流程.

不管当前的流程被怎么控制,只要脱离控制,程序依然会顺序执行的。流程控制就是为了让它脱离顺序,达到一定目的。

顺序结构

程序的运行步骤与代码的书写顺序一致

分支结构

if、else

单if结构

if(条件){

语句a

}

语句b

逻辑:判断条件是否满足,如果满足则执行语句a,再执行语句b;

反之,直接执行语句b。

标准if-else

if(条件){

语句a

}

else{

语句b

}

语句c

逻辑:条件满足,执行语句a;反之,执行语句b;语句c无论如何都会执行。

注:if、else的是互斥的;if、else中必须有一个被执行

注:

当if()不带大括号的时候它就找if下面的第一个分号;里的内容,如果分号前是空那就什么都不执行。对应else也是一样适用的。

int i = 3;

if (i < 2)

System.out.println("S");

System.out.println("B");

多条件的if-else

if(条件1){

语句a

}

else if(条件2){

语句b

}

else if(条件3){

语句c

}

...

else{

语句n

}

语句m

逻辑:依次判断每一个条件,当有一个条件满足时,就执行对应代码段中的语句,然后执行语句m;

如果没有任何一个语句满足条件,则执行最后一个else的语句n,然后再执行语句m。

嵌套的if-else条件

格式:if或者else的代码块中又有if-else继续进行判断

选择结构

关键字:switch、case、break、default

switch(表达式){

case 值1:

语句a

break;

case 值2:

语句b

break;

case 值3:

语句c

break;

...

default:

语句d

break;

}

逻辑:计算表达式的结果,将此结果与case后的值进行对比,如果相同,则执行该case后的语句;

如果没有一个case后的值与表达式的结果相同,则执行default后的语句。

注:

表达式中可以放置的数据类型有byte、short、int、char、String、枚举

case后值的类型必须表达式的结果类型一致

case后的值必须唯一

default不是必需的,只有没有任何一次case满足且需要有默认结果时才使用;且位置是任意的,一般放在最后

break的作用是结束整个switch-case结构

当case判断到有满足条件的时候就执行,如果有break就跳出。没有就继续执行,直到有break。当case不满足条件就跳过这个case执行下一个case。

不使用break的穿透性:break会导致立刻中断跳出。只要没有中断就会继续执行下去,那么把default放在最前面,或者放在中间,case执行了一边再回到default,还会从default往下执行下面的case。

在某一个case值与表达式结果匹配时,不写break,程序会顺序的向下执行,知道遇到下一个break,或者知道switch-case结构的末尾

这是计算月份某一年第几月的第几号是这一年的多少天。

倒着取能够把前面的月份都算上,以后有这样的算法,可以这样计算。

int sum = 0;

switch (month) {

case 12:

sum += 30;

case 11:

sum += 31;

case 10:

sum += 30;

case 9:

sum += 31;

case 8:

sum += 30;

case 7:

sum += 31;

case 6:

sum += 31;

case 5:

sum += 30;

case 4:

sum += 31;

case 3:

sum += 28;

case 2:

sum += 31;

case 1:

sum += day;

----------------------------------------------------------------

所有满足条件的月份都可以向下执行

int month = 5;

if(month >= 1 && month <= 12){

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

System.out.println("大");

break;

case 2:

case 4:

case 6:

case 9:

case 11:

System.out.println("小");

break;

}

------------------------------------------------------------------

先执行一边case发现没有满足条件的,之后执行default,然后发现没有break,又把所有的case又执行了一边。

int score = 44;

switch (score / 10) {

default:

System.out.println("E");

case 10:

case 9:

System.out.println("A");

case 8:

System.out.println("B");

case 7:

System.out.println("C");

case 6:

System.out.println("D");

}

输出:

E

A

B

C

D

循环结构

在下一篇day4笔记

随机数、键盘输入

键盘输入java.util.Scanner

使用步骤:

创建Scanner对象

Scanner sc = new Scanner(System.in);

调用接收判断输入的方法

String s = sc.next();接收字符串 ,返回字符串

int in = sc.nextInt();接收int数据 ,返回int

随机数

使用步骤:

创建Random对象

Random r = new Random();

调用随机整数的方法

r.nextInt();随机整个int范围内的数

r.nextInt(int bound);随机到的数据是0~bound-1,包含0,也包含bound-1

注:随机 [m,n] 公式 nextInt(n-m+1)+m

Random random = new Random();

double randomNum = random.nextInt();

System.out.println(randomNum);

想要随机一个一个23-44

double randomNum = random.nextInt(22)+23;//这里面的22是要考虑到0的感受的

System.out.println(randomNum);

想要随机的数就是[m-n] 从m-n的随机数

公式:(n-m+1)+m

额外

对象和接口都是引用数据类型,引用数据类型传递的是地址

所有条件判断的时候,最先做的是判断合法性,之后才判断。这样可以避免无用的条件判断

标签:case,语句,流程,数据类型,键盘输入,else,break,随机数,sum

来源: https://www.cnblogs.com/macht/p/11567490.html

java让用户输入3个随机数_3-流程控制、随机数、键盘输入相关推荐

  1. java三个数排序从小到大,键盘输入三个数,实现从小到大排序,键盘输入从小到大...

    键盘输入三个数,实现从小到大排序,键盘输入从小到大 // 导包 import java.util.Scanner; public class Sort { public static void mai ...

  2. java程序a-z b-y,请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结 - 赏学吧...

    请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结果.加密操作是将字母变换成倒序的大写字母,如A->Z,B->Y. 注意:请勿改动main( ...

  3. java编程题身高排队_编程初学者入门4_从键盘输入5个人的身高(米),求他们的平均身...

    编程初学者入门4_从键盘输入5个人的身高(米),求他们的平均身 编程初学者入门4_从键盘输入5个人的身高(米),求他们的平均身高(米).(C的没什么问题,试着用Java写一下,Java的Scanner ...

  4. 用JAVA实现蓝桥杯基础训练之十六进制转十进制:从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

    问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D.E.F表示. 样例输入 FFFF 样例输出 6 ...

  5. java找出命题p和q的合取_从键盘输入两个命题变元p和q的真值-求它们的合取、析取、蕴含和等价的真值...

    <从键盘输入两个命题变元p和q的真值-求它们的合取.析取.蕴含和等价的真值>由会员分享,可在线阅读,更多相关<从键盘输入两个命题变元p和q的真值-求它们的合取.析取.蕴含和等价的真值 ...

  6. java找出命题p和q的合取_从键盘输入两个命题变元P和Q的真值-求它们的合取、析取、蕴含和等价的真值.doc...

    长治学院 <离散数学>实验报告 专 业: 计算机科学与技术 班 级: 计科1202班 学 号: 姓 名: 武文超 组 别: 1 指导老师: 李艳玲 2013.11.30~2013.12.2 ...

  7. JavaSE——流程控制(接收输入Scanner、分支结构(if与switch)、循环结构(while、do-while与for))

    第3节 流程控制 一.接收用户输入 使用Scanner类来接收用户的输入. 新建一个Scanner对象:Scanner input = new Scanner(System.in); input可以接 ...

  8. java求偶数位之和,JavaSE (四)程序流程控制 -- if 、switch、for、while

    目录 前置: *. 从键盘读取数据: 1.导包 import java.util.Scanner; 2.创建对象 Scanner s = new Scanner(System.in); 3.调用方法 ...

  9. Java基础语法之变量、运算符、流程控制、数组和方法等基础语法

    变量.运算符.流程控制.数组和方法等基础语法.Java程序的执行流程,符合Java语法规则的程序. 1.1.1 Java初识 对Java进行简单介绍,Java程序如何执行,以及Java程序的结构. J ...

  10. Java基础笔记(入门,语法基础,流程控制,数组)

    Java语言入门 发展历程 三大技术体系 JavaSE 标准版 JavaEE 企业版 JavaME 嵌入式版 Java语言特点 简单性 健壮性 面向对象 分布式 多线程 动态性 可移植性(跨平台) J ...

最新文章

  1. 你被科研方向和创新点困扰多久了?
  2. 使用树莓派(Raspberry Pi)远程GPIO
  3. Linux_LEMP
  4. 使用tomcat的jndi方式连接mysql的字符编码设置
  5. vue-cli4脚手架搭建实战教程
  6. spring-note-01
  7. Tree Constructer
  8. Spring Cloud应用监控与管理Actuator
  9. php 一些个 常用 函数
  10. Linux 修改用户名的主目录 家目录
  11. 服务器出生点配置文件,服务器设置出生点
  12. 【英语学习】【WOTD】links 释义/词源/示例
  13. 【ElasticSearch】Es 源码之 PageCacheRecycler 源码解读
  14. Vue.js 源码分析(九) 基础篇 生命周期详解
  15. sphinx 使用
  16. Unity - Windows获取屏幕分辨率、可用区域
  17. LiteIDE主题定制教程
  18. 一、64位windows 安装mysql
  19. python sample函数
  20. 程序员须学计算机语言,新手程序员需要学什么编程语言

热门文章

  1. VC++ 打开文件夹,保存文件等对话框的调用
  2. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
  3. mac环境下myeclipse上配置tomcat
  4. JDBC批处理读取指定Excel中数据到Mysql关系型数据库
  5. top命令查看内容详解
  6. BP算法双向传_链式求导最缠绵(深度学习入门系列之八)
  7. 在ESXi5,1,ESXi5.5安装异步驱动程序
  8. ASP.NET 5系列教程 (二):Hello World
  9. Solr -- Solr Facet 2
  10. doxygen可以生成C/C++代码的文档(根据注释)