首页 > 编程语言 > 详细

Java随机数-for循环-Scanner-Switchcase

时间:2021-02-06 23:56:08      阅读:47      评论:0      收藏:0      [点我收藏+]

从键盘获取值

java.util.Scanner input = new java.util.Scanner(System.in);
  1. java.util.Scanner:是一个扫描仪的类型,是引用数据类型,首字母是大写,其中java.util是包
  2. input是一个变量名,他表示这个扫描仪
  3. new java.util.Scanner(System.in)是给input赋值的,他是一个新的对象
  4. (System.in)是指定了数据的来源是表示的输入设备,默认代表键盘输入
  5. 注意:需要根据响应的方法,来输入指定类型的值,如果输入的数据类型与要求的类型不匹配时,会报异常: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)
}

执行特点:

  1. 入口
    • 当switch()中的表达式的值与某一个case后面的常量值"相等",就会从这个case进入
    • 当swiitch()中的表达式的值与所有的case后面的常量值都“不相等”,就会寻找default进入(如果你default放到了case前面,就需要break了。不然一直往下干)
  2. 出口
    • 自然出口:switch结束的那个大括号}
    • 中断出口:break (或后面要讲的return等)
  3. 一旦找到“入口”就会顺序往下执行,直到遇到“出口”
  • 要求:
    • 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

循环结构

  1. for循环
  2. while循环
  3. do...while循环
  4. foreach增强循环(后面讲)

for循环

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

for(;;){
    需要重复执行的语句
}
for(;;){
    System.out.println("于建华真帅");
}
//无限循环
for(循环变量初始化表达式①;循环条件表达式②;循环变量迭代表达式③){
	循环体语句④:需要重复执行的语句
}

执行过程:

  1. 执行循环变量初始化表达式①;
  2. 进行循环条件表达式②判断;
  3. 如果循环条件表达式②成立,执行循环体语句④,然后再执行循环变量迭代表达式③,完事后回到 第二步,再进行判断(如果循环条件表达式②不成立,结束整个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;
    }
}

Java随机数-for循环-Scanner-Switchcase

原文:https://www.cnblogs.com/libra-ziqing/p/14382465.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!