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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值