java让用户输入3个随机数_3-流程控制、随机数、键盘输入
目录
数据类型转换
问:不同数据类型能否一起运算?
答:能
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-流程控制、随机数、键盘输入相关推荐
- java三个数排序从小到大,键盘输入三个数,实现从小到大排序,键盘输入从小到大...
键盘输入三个数,实现从小到大排序,键盘输入从小到大 // 导包 import java.util.Scanner; public class Sort { public static void mai ...
- java程序a-z b-y,请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结 - 赏学吧...
请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结果.加密操作是将字母变换成倒序的大写字母,如A->Z,B->Y. 注意:请勿改动main( ...
- java编程题身高排队_编程初学者入门4_从键盘输入5个人的身高(米),求他们的平均身...
编程初学者入门4_从键盘输入5个人的身高(米),求他们的平均身 编程初学者入门4_从键盘输入5个人的身高(米),求他们的平均身高(米).(C的没什么问题,试着用Java写一下,Java的Scanner ...
- 用JAVA实现蓝桥杯基础训练之十六进制转十进制:从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D.E.F表示. 样例输入 FFFF 样例输出 6 ...
- java找出命题p和q的合取_从键盘输入两个命题变元p和q的真值-求它们的合取、析取、蕴含和等价的真值...
<从键盘输入两个命题变元p和q的真值-求它们的合取.析取.蕴含和等价的真值>由会员分享,可在线阅读,更多相关<从键盘输入两个命题变元p和q的真值-求它们的合取.析取.蕴含和等价的真值 ...
- java找出命题p和q的合取_从键盘输入两个命题变元P和Q的真值-求它们的合取、析取、蕴含和等价的真值.doc...
长治学院 <离散数学>实验报告 专 业: 计算机科学与技术 班 级: 计科1202班 学 号: 姓 名: 武文超 组 别: 1 指导老师: 李艳玲 2013.11.30~2013.12.2 ...
- JavaSE——流程控制(接收输入Scanner、分支结构(if与switch)、循环结构(while、do-while与for))
第3节 流程控制 一.接收用户输入 使用Scanner类来接收用户的输入. 新建一个Scanner对象:Scanner input = new Scanner(System.in); input可以接 ...
- java求偶数位之和,JavaSE (四)程序流程控制 -- if 、switch、for、while
目录 前置: *. 从键盘读取数据: 1.导包 import java.util.Scanner; 2.创建对象 Scanner s = new Scanner(System.in); 3.调用方法 ...
- Java基础语法之变量、运算符、流程控制、数组和方法等基础语法
变量.运算符.流程控制.数组和方法等基础语法.Java程序的执行流程,符合Java语法规则的程序. 1.1.1 Java初识 对Java进行简单介绍,Java程序如何执行,以及Java程序的结构. J ...
- Java基础笔记(入门,语法基础,流程控制,数组)
Java语言入门 发展历程 三大技术体系 JavaSE 标准版 JavaEE 企业版 JavaME 嵌入式版 Java语言特点 简单性 健壮性 面向对象 分布式 多线程 动态性 可移植性(跨平台) J ...
最新文章
- 你被科研方向和创新点困扰多久了?
- 使用树莓派(Raspberry Pi)远程GPIO
- Linux_LEMP
- 使用tomcat的jndi方式连接mysql的字符编码设置
- vue-cli4脚手架搭建实战教程
- spring-note-01
- Tree Constructer
- Spring Cloud应用监控与管理Actuator
- php 一些个 常用 函数
- Linux 修改用户名的主目录 家目录
- 服务器出生点配置文件,服务器设置出生点
- 【英语学习】【WOTD】links 释义/词源/示例
- 【ElasticSearch】Es 源码之 PageCacheRecycler 源码解读
- Vue.js 源码分析(九) 基础篇 生命周期详解
- sphinx 使用
- Unity - Windows获取屏幕分辨率、可用区域
- LiteIDE主题定制教程
- 一、64位windows 安装mysql
- python sample函数
- 程序员须学计算机语言,新手程序员需要学什么编程语言
热门文章
- VC++ 打开文件夹,保存文件等对话框的调用
- JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
- mac环境下myeclipse上配置tomcat
- JDBC批处理读取指定Excel中数据到Mysql关系型数据库
- top命令查看内容详解
- BP算法双向传_链式求导最缠绵(深度学习入门系列之八)
- 在ESXi5,1,ESXi5.5安装异步驱动程序
- ASP.NET 5系列教程 (二):Hello World
- Solr -- Solr Facet 2
- doxygen可以生成C/C++代码的文档(根据注释)