scanner与random 流程控制语句

运算符的优先级

        =优先级最低

        单目算数位关系,逻辑三目后赋值

        &&优先级高于||

        int a = 5;

        int b = 10;

        boolean x = a < b ?( a++ * 2 > b || a > b ):( a < b);

        System.out.println(x);  //F

        System.out.println(a);  //6

        System.out.println(b);  //10

        //&&优先级高于||

        System.out.println(false && true || true);  //true

        System.out.println(true || true && false);  //true

基本数据类型:

        基本数据类型 变量名 = 赋值;

        int i = 1;

引用数据类型:

        1.导包 : 指明当前引用数据类型类的位置

                import 包名.类名;

                位置: 类的上面

        2.创建当前引用数据类型的一个变量|引用

                引用数据类型 变量名  = new 引用数据类型();

        3.根据引用使用功能

                引用名.功能名字();

Scanner 接收用户键盘输入的内容

        1.导包

                import java.util.Scanner;

        2.创建Scanner类型的一个变量|引用

                Scanner sc  = new Scanner(System.in);

        3.使用功能

                sc.功能名字();

                sc.nextInt(); 接收用户键盘输入的int类型的数据

                sc.nextByte(); 接收用户键盘输入的byte类型的数据

                sc.nextShort(); 接收用户键盘输入的short类型的数据

                sc.nextLong(); 接收用户键盘输入的long类型的数据

                sc.nextFloat(); 接收用户键盘输入的float类型的数据

                sc.nextDouble(); 接收用户键盘输入的double类型的数据

字符串

        sc.next(); 接收用户输入的字符串

        从有效字符开始接收(非空格),知道遇到enter才能结束功能,但是接收过程中如 果遇到空格,就停止接收,但是功能不会结束

        sc.nextLine(); 接收用户输入的一整行字符串

        从任意字符开始接收,如果接收的内容为enter结束功能

        如果nextLine功能的上面有使用到系列next功能,需要处理遗留enter问 题sc.nextLine();

4.关闭

        sc.close(); 使用当前类中完全使用完毕之后进行关闭,以便于回收资源

        import java.util.Scanner;

        public class Class001_Scanner{  

        public static void main(String[] args){

        //1.导包

        //2.创建Scanner类型的一个变量|引用

                Scanner sc  = new Scanner(System.in);

        //3.使用功能

        //接收int类型整数

                System.out.println("请输入年龄:");

                int age = sc.nextInt();

                System.out.println(age);

                System.out.println("请输入月薪:");

                double sal = sc.nextDouble();

                System.out.println(sal);

        //字符串

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

                String name = sc.next();

                System.out.println(name);

        //处理遗留的enter问题

                        sc.nextLine();

                        System.out.println("请输入学校名字:");

                        String schoolName = sc.nextLine();

                        System.out.println(schoolName);

        //关闭

                sc.close();

Random : 产生随机数

        nextInt() 产生int范围内随机整数

        Eg: //1.导包

        //2.创建Random类型的引用

                Random ran = new Random();

        //3.生成int范围的随机整数

                int num1 = ran.nextInt();

                System.out.println(num1);

        nextInt(整数n) 产生int类型的[0,n)整数

                Eg: //[0,5)

                int num2 = ran.nextInt(5);

                System.out.println(num2);

                nextDouble() 产生一个double类型 的随机小数-->[0.0,1.0)

                Eg: //[0.0,1.0)

                System.out.println(ran.nextDouble());

                System.out.println(ran.nextDouble());

                System.out.println(ran.nextDouble());

                System.out.println(ran.nextDouble());

总结公式:

        产生某一个范围内的随机 整数

              1.  [0,max]   ran.nextInt(max+1)

               2. [min,max]  

                ran.nextInt(max+1) -->[0,max] + min

                ran.nextInt(max+1)+min -->[0,max] + min --> [min,max+min]

                ran.nextInt(max-min+1)+min -->[0,max-min] +min --> [min,max]

        Eg: //[5,10]

        System.out.println(ran.nextInt(10-5+1)+5);

        System.out.println(ran.nextInt(10-5+1)+5);

        System.out.println(ran.nextInt(10-5+1)+5);

        System.out.println(ran.nextInt(10-5+1)+5);

        3.[min,max)

                ran.nextInt(max-min)+min  -->[0,max-min)+min-->[min,max)

        Eg: [0,4)

        System.out.println(ran.nextInt(4-0)+0);[0,4-0)+0

伪随机数: 没有真实达到完全随机

流程控制语句

        顺序结构 : 从上到下,从左到右-->默认

        选择结构 : 满足条件执行对应的代码

        循环结构 : 让一些代码重复不停的执行多次

选择结构:

        if 区间判断|定值判断

        switch 定值判断

        能用switch的都能if,能用if不一定能够使用switch

if  

        单选泽|单分支\

        if(条件表达式){

                满足条件执行的代码段

        }

条件表达式  : 必须为一个值为boolean的表达式

执行流程:

        1.计算条件表达式

        2.如果结果为true,执行{}中的语句体

        3.如果结果为false,就直接跳过if结构

        Eg int i = -1;

        System.out.println("if开始了");

        if(i==0){

        System.out.println("i=0");

        }

        System.out.println("if结束了");

双选择|双分支

        if(条件表达式){

                满足条件执行的代码段;

        }else{

                不满足条件执行的代码段;

        }

        注意: 双选择一定能够执行语句体|一定能够得到结果

        if(i>0){

                System.out.println("i>0");

        }else{

                System.out.println("i<=0");

        }

多选择|多分支

        if(条件表达式1){

        满足条件表达式1执行的语句体1;

        }else if(条件表达式2){

        满足条件表达式2执行的语句体2;

        }else if(条件表达式3){

        满足条件表达式3执行的语句体3;

        }.....

        else{ -->接盘侠

        如果以上都不满足执行得到语句体n;

        }

        if(i==0)

        System.out.println("i=0");

        else if(i<0)

        System.out.println("i<0");

        else{

        System.out.println("i>0");

        System.out.println("测试是否能够被if语句体结构控制");

        }

        注意: 当{}中的语句体只有一句,前后的{}可以省略

if 与 条件运算符之间的区别:

        能够使用条件运算符的都可以使用if语句

        if是一个语法结构,条件运算符是运算符

        条件运算符编写更简洁,性能更高,结构简单,但是if更强大

        条件运算符必须得到一个结果的,但是if语句可以没有结果(单选择)

        if语句可以根据不同 的选择判断,决定执行对应的语句体结构,而条件运算符只能 存在一个条件

        建议: 如果结构简单,能够使用条件运算符就使用条件运算符,否则就使用if语句

switch 定值判断

        能用if的不一定能用switch,能用switch都能使用if

                switch(表达式){

                        case 值1:

                        语句体1;

                        break;

                        case 值2:

                        语句体2;

                        break;

                         ....

                        default:

                        语句体n;

                        break;

                }

        

        表达式 :  一般为一个变量,可以为一个表达式,常量都可以

        结果数据类型要求: byte,short,int,char,枚举类型(jdk5),String字符串(jdk7)

case : 后面接一个定值,拿到表达式的结果与case后面的定值进行判断是否相等,相等执  行对应的语句体,不相等,继续向下判断

          从上到下一次判断

break : 终止当前的switch语句

        如果没有break会发生case穿透 : 从当前满足条件的语句体开始执行,一直向下 穿透,无论下面的case是否满足条件都不再判断,直接执行语句体,直到遇到下一个 break或者switch语句的结束而结束

default : 与else相同

        以上的case都不满足,name就执行default中的内容

        位置可以在switch语句中的任意位置

        一般定义在switch语句的最后,如果切换位置,注意break定义

//信号灯

        String flag = "粉灯";

        switch(flag){

                case "红灯":

                        System.out.println("红灯停");

                        break;

                case "绿灯":

                        System.out.println("绿灯行");

                        break;

                case "黄灯":

                        System.out.println("黄灯等一等");

                        break;

                 default:

                        System.out.println("你是不是色弱!!!!");

                        break;

        }

//case穿透

        switch(flag){

                case "红灯":

                        System.out.println("红灯停");

                case "绿灯":

                        System.out.println("绿灯行");

                case "黄灯":

                        System.out.println("黄灯等一等");

                        break;

                default:

                        System.out.println("你是不是色弱!!!!");

                        break;

       }

循环结构:  让一些重复执行多次

        for循环   次数循环

        while循环 条件循环

        do..while循环  

        都可以互相转换

for循环

        for(条件初始化;条件判断;条件变化 ){

                重复执行的语句体;

        }

        条件初始化 : 声明一个变量i并且第一次赋值  -->i条件

        条件判断 : 对变量的i判断

        决定循环是否结束

        条件变化|迭代因子 : 变量i自身值的改变

执行顺序:

        1.条件初始化 i

        2.条件判断,满足执行语句体,不满足条件,结束循环

        3.条件变化

        从第二次循环开始,重复执行2,3步骤

注意:

        for循环的变量条件i只属于当前 for循环,只能在循环中使用

        for可以通过条件的变化控制循环的次数,循环体中可以使用条件的值, 条件变量可以按照想要的逻辑进行变化,实现需求

考虑: 是否存在一些代码重复执行,如果是,规律可循,可以选择使用循 环结构

        如果循环体语句只有一句,前后的{}可以省略

Eg //求1-100的和,求1-100的偶数和,求1-100的奇数和

int sum1=0;

int sum2=0;

int sum3=0;

for(int i=1;i<=100;i++){

sum1+=i;

}

System.out.println(sum1);

for (int i = 2; i<= 100; i += 2) {

sum2 += i;

}

System.out.println("1到100的偶数和为:" + sum2);

for (int i = 1; i <= 100; i += 2) {

sum3 += i;

}

System.out.println("1到100的奇数和为:" + sum3);

//1-50当中能被4整除的数的和

int sum=0;

for (int i=1; i<=50; i++){

if(i%4==0){

sum += i;

}

}

System.out.println("1-50当中能被4整除的数的和为:"+sum);

//求出 1-100当中既能被3整除又能被5整除还能被2整除的和,

sum=0;

for (int i=1; i<=100; i++){

if(i%3==0&&i%5==0&&i%2==0){

sum += i;

}

}

System.out.println("1-100当中既能被3整除又能被5整除还能被2整 除的和为:"+sum);

//求出 1-100当中能被3整除或者能被5整除或者能被2整除的和

sum=0;

for (int i=1; i<=100; i++){

if(i%3==0||i%5==0||i%2==0){

sum += i;

}

}

System.out.println("1-100当中能被3整除或者能被5整除或者能被2 整除的和为:"+sum);

//求5的阶乘  5! 5*4*3*2*1

int r=1;

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

r*=i;

}

System.out.println(r);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值