java switch scanner_Java随机数-for循环-Scanner-Switchcase

从键盘获取值

java.util.Scanner input = new java.util.Scanner(System.in);

java.util.Scanner:是一个扫描仪的类型,是引用数据类型,首字母是大写,其中java.util是包

input是一个变量名,他表示这个扫描仪

new java.util.Scanner(System.in)是给input赋值的,他是一个新的对象

(System.in)是指定了数据的来源是表示的输入设备,默认代表键盘输入

注意:需要根据响应的方法,来输入指定类型的值,如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException 。导致程序终止

/*具体实现步骤

1.导包: import java.util.Scanner;

2.Scanner的实例化:Scanner input = new Scanner(System.in);

3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量。

*/

import java.util.Scanner; // 直接引入写着比较方便

public class ScannerTest {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

int num = scan.nextInt();

System.out.println(num);

}

}

public static void main(String[] args) {

//默认是扫描你键盘输入的东西,赋值给input这个变量

java.util.Scanner input = new java.util.Scanner(System.in);

//只是输出了println里的字符串而已

System.out.print("请输入你的年龄:");

//从扫描仪中获取一个int的值,赋值给age

//nextInt是input这个对象的方法,所以Int的I是大写,因为方法名和变量名一样,从第二个单词开始首字母大写

int age = input.nextInt();

//这里是打印age的值,没啥说的

System.out.println(age);

}

public static void main(String[] args) {

//默认是扫描你键盘输入的东西,赋值给input这个变量

java.util.Scanner input = new java.util.Scanner(System.in);

//只是输出了println里的字符串而已

System.out.print("请输入你的年龄:");

//从扫描仪中获取一个int的值,赋值给age

//nextInt是input这个对象的方法,所以Int的I是大写,因为方法名和变量名一样,从第二个单词开始首字母大写

int age = input.nextInt();

System.out.print("请输入姓名:");

//string太常用了,所以简化了直接就是next()

String name = input.next();

System.out.print("请输入体重:");

//从扫描仪中获取一个double的值,赋值给weight

//方法名的第二个字母大写!!!

double weight = input.nextDouble();

System.out.print("帅不帅:");

//从扫描仪中获取一个boolean的值,赋值给shuai

boolean shuai = input.nextBoolean();

System.out.print("请输入性别:");

//因为输入单个char太少用了,Scanner中没有提供输入单个char的方法,那我们只能变通,先按字符串接收,然后取第一个字符

//input.next()是按字符串来接收,charAt(第二个字母大写)里的char是字符的意思At是在的意思(合起来就是字符在哪)

// .charAt(0)就是取到input.next()这个字符串的下标第0个位置

char sex = input.next().charAt(0);

System.out.println("姓名:"+name);

System.out.println("性别:"+sex);

System.out.println("年龄:"+age);

System.out.println("体重:"+weight);

System.out.println("帅吗:"+shuai);

}

产生随机数**

//[]包括 ()不包括

Math.random() // 产生随机数

Math.random() // 默认产生[0.0, 1.0)范围的随机数

Math.random()*90 // [0.0, 90.0)

Math.random()*90+10 // [10.0, 100.0)即得到[10.0, 99.0]

使用(int)(Math.random()*90+10)产生一个两位数的随机数。 // 用(int)强转成int

//公式:[a,b]:

(int)(Math.random() * (b - a + 1) + a)

switch-case

基本结构

switch(表达式){

case 常量值1:

语句块1;

case 常量块2:

语句块2;

...

default:

语句块(default就是相当于if语句里的else,但也可以加break)

}

执行特点:

入口

当switch()中的表达式的值与某一个case后面的常量值"相等",就会从这个case进入

当swiitch()中的表达式的值与所有的case后面的常量值都“不相等”,就会寻找default进入(如果你default放到了case前面,就需要break了。不然一直往下干)

出口

自然出口:switch结束的那个大括号}

中断出口:break (或后面要讲的return等)

一旦找到“入口”就会顺序往下执行,直到遇到“出口”

要求:

case后边必须是常量值

case后边的常量值不能重复(那他就不知道应该从哪进了)

switch()中的表达式的类型有要求:

允许4种基本数据类型:byte,short,int,char

允许两种引用数据类型:枚举(JDK1.5之后),String(JDK1.7之后)

switch-case练习

多个case执行语句相同,可以考虑进行合并

// 成绩大于等于60输出及格,小于60输出不及格(必须用switch case)

int score = 78;

switch (score / 10){

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:

System.out.println("不及格");

break;

case 6:

case 7:

case 8:

case 9:

case 10:

System.out.println("及格");

break;

}

//***************更牛逼的方法*****************

int score = 78;

switch(score / 60){

case 0:

System.out.println("不及格");

break;

case 1:

System.out.println("及格");

break;

}

补充:

偷学判断两个字符串内容是否一样:

String类型的变量(字符串1).equals(要比较的变量(字符串2))

Scanner input = new Scanner(System.in);

System.out.println("输入性别:");

String sex = input.next();

if(sex.equals("男")){

System.out.println("是个爷们");

}else if(sex.equals("女")){

System.out.println("臭娘们");

}else{

System.out.println("是个人吗?");

}

// equals()是字符串的一个方法。sex.equals("男")的意思就是sex的值和括号里的值是否相同,相同就是true不同就是false

循环结构

for循环

while循环

do...while循环

foreach增强循环(后面讲)

for循环

语法结构:里边一定有俩分号,不能多也不能少(下边的结构是for(;;)是无限循环)

for(;;){

需要重复执行的语句

}

for(;;){

System.out.println("于建华真帅");

}

//无限循环

for(循环变量初始化表达式①;循环条件表达式②;循环变量迭代表达式③){

循环体语句④:需要重复执行的语句

}

执行过程:

执行循环变量初始化表达式①;

进行循环条件表达式②判断;

如果循环条件表达式②成立,执行循环体语句④,然后再执行循环变量迭代表达式③,完事后回到 第二步,再进行判断(如果循环条件表达式②不成立,结束整个for循环)

注意:循环条件表达式②要么不写,要么必须是boolean类型

for(int zq = 1; zq <= 5; zq++){

System.out.println("于建华真帅");

}

/*

于建华真帅

于建华真帅

于建华真帅

于建华真帅

于建华真帅

*/

// 输入俩数,求他俩的最大公约数和最小公倍数;例如:12和20的最大公约数为6,最小公倍数为60

Scanner input = new Scanner(System.in);

System.out.println("第一个正整数:");

int m = input.nextInt();

System.out.println("第二个正整数:");

int n = input.nextInt();

//最大公约数

int num = m < n ? m:n;

for (int i = num; i >= 1; i--){

if(m % i == 0 && n % i == 0){

System.out.println("最大公约数为:" + i);

break;

}

}

//最小公倍数

int number = m > n ? m:n;

for (int i = number; i <= m*n ;i++){

if (i % m == 0 && i % n == 0){

System.out.println("最小公倍数:" + i);

break;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值