引用数据和控制语句

一,引用数据

1,如何应用数据

    1)导包 
            指定要使用的引用数据类型的位置
            import 包名.类名;
            位置: 类的上面
    2)创建引用数据类型的引用
    引用数据类型 变量名|引用 = new 引用数据类型();
    
    3)使用功能
        引用.功能名字();
​

2,如何接收用户键盘输入的内容

Scanner :

1)导包: import java.util.Scanner; ​ 2)创建一个Scanner类型的引用 ​ Scanner sc = new Scanner(System.in); ​ 3)使用功能 ​ sc.nextInt() 接收用户键盘输入的int类型的数据 ​ sc.nextByte() 接收用户键盘输入的byte类型的数据 ​ sc.nextShort() 接收用户键盘输入的short类型的数据 ​ sc.nextLong() 接收用户键盘输入的long类型的数据 ​ sc.nextDouble() 接收用户键盘输入的double类型的数据 ​ sc.nextFloat() 接收用户键盘输入的float类型的数据 ​

sc.next() 接收用户收入的字符串类型的数据 从有效字符开始接收(非空格),遇到空格就停止接收,知道遇到enter功能结束 以上这些系列的next功能,都是从有效字符开始接收 sc.nextLine() 接收用户输入的一整行的数据,知道遇到enter结束 当nextLine功能的上面存在系列的next功能时候,注意处理之前的系列的next遗留的enter问题

import java.util.Scanner;
public class Class012_Scanner{
    
    public static void main(String[] args){
        //1)导包:
        //2)创建一个Scanner类型的引用
        Scanner sc = new Scanner(System.in);
        //3)使用功能
        
        int i = sc.nextInt();
        System.out.println("用户输入的内容为 = "+i);
        /*
        byte b = sc.nextByte();
        System.out.println("用户输入的内容为 = "+b);
        
        System.out.println("请输入用户名:");
        String name = sc.next();
        System.out.println("用户输入的内容为 = "+name);
        System.out.println(name.length());
        */
        //处理遗留的enter问题
        sc.nextLine();
        
        String str = sc.nextLine();
        System.out.println(str);
    }
}
​

3,随机数

Random:

1.导包 import java.util.Random; ​ 2.创建类型的引用 Random ran = new Random(); ​ 3.使用功能 ​ ran.nextInt() 生成一个int类型范围内的随机数 ​ ran.nextInt(整数n) 生成一个 [0,n) 之间的随机整数 ​ ran.nextDouble() 生成一个 double 类型的随机小数->[0.0,1.0) ​

    总结公式:
    [min,max) 随机整数  ran.nextInt(max-min)+min
        ran.nextInt(max)->[0,max) 
        ran.nextInt(max)+min ->[0,max) + min  -> [min,max+min)
        ran.nextInt(max-min)+min ->[0,max-min) + min  -> [min,max)
    [min,max] 随机整数  ran.nextInt(max-min+1)+min
import java.util.Random;
public class Class013_Random{
    
    public static void main(String[] args){
        //1.导包
        //2.创建类型的引用
        Random ran = new Random();
        int num1 = ran.nextInt();
        System.out.println(num1);
        //[1,5)
        //System.out.println(ran.nextInt(5-1)+1);
​
        //[3,5]
        System.out.println(ran.nextInt(5-3+1)+3);
        System.out.println(ran.nextInt(5-3+1)+3);
        System.out.println(ran.nextInt(5-3+1)+3);
        System.out.println(ran.nextInt(5-3+1)+3);
        
        
        System.out.println(ran.nextDouble());
    }
}
​

二,控制语句

java中的流程控制语句 顺序结构 : 从上到下,从左到右 选择结构|分支结构 : 满足条件才能执行一些代码 循环结构 : 让一些代码可以重复执行多次

1,if语句

    单选泽|单分支
            if(表达式){
                语句体;
            }
            执行流程:
                1.计算表达式,得到一个boolean结果
                2.如果结果为true,执行{}中的语句体
                3.如果结果为false,就不执行直接跳过if结构
        双选择|双分支
            if(表达式1){
                语句体1;
            }else{
                语句体2;
            }
            执行流程:
                1.计算表达式1,得到一个boolean结果
                2.如果结果为true,执行{}中的语句体1
                3.如果结果为false,执行{}中的语句体2             
        多选择|多分支
            if(表达式1){
                语句体1;
            }else if(表达式2){
                语句体2;
            }else if(表达式3){
                语句体3;
            }....
            else{
                如果以上的if条件都不满足就执行这个语句体n
            }
    注意:
        使用多选择与多个单选择之间区别 : 1)语义化结构  2)执行判断次数   3)执行语句体次数
        当{}中的语句体只有一句时候,前后的{}可以省略
    
public class Class003_If{
public static void main(String[] args){
    int money =-5;
    
    //单选泽
    if(money>0){
        System.out.println("消费....");
    }
    
    if(false){
        System.out.println("消费....");
    }
    
    //双选择
    if(money>0){
        System.out.println("消费....");
    }else{
        System.out.println("搞钱....");
    }
    
    //多选择
    if(money==0)
        System.out.println("快搞钱....");
    else if(money<0)
        System.out.println("搞钱还钱....");
    else
        System.out.println("大吃大喝....");

 

    //多个单选泽
    /*
    if(money==0){
        System.out.println("快搞钱....");
    }
    if(money<0){
        System.out.println("搞钱还钱....");
    }
    if(money>0){
        System.out.println("消费....");
    }
    */
    
    System.out.println("main方法结束....");
    }
}

2,Switest语句

switch : 定值判断 switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; case 值3: 语句体3; break; .... default: --> 接盘侠 语句体n; break; }

表达式 : 一般为一个 变量或者一个表达式
   类型: byte,short,int,char,枚举(jdk5新增),String(jdk7)
case : 后面接一个定值,不能是区间,使用定值与表达式的结果进行判断,相等执行后面对应的语句体,不相等继续向下判断
break : 结束switch语句
        防止case穿透问题
default : 默认的
    如果以上的case后的值与表达式的结果都不相等时候,执行default后的代码
    位置可变,可以在switch语句{}的任意位置
    
if与switch与条件运算符之间的区别:
    条件运算符: 根据条件做判断  运算符  结构简单,受限制->判断条件单一,直接根据判断条件获取结果,肯定会得到一个结果
    结构复杂使用if或者switch
        if-> 定值判断,区间判断
        switch->定值判断
        能用switch的都能if,能用if不一定能用switch
    
    建议: 简单合适结构可以条件运算符,复杂的,定值的可以使用switch->都可以使用if
        
        
        
public class Class005_Switch{
	public static void main(String[] args){
		String flag = "紫灯";	
switch(flag){
		case "红灯":
			System.out.println("红灯停");
			break;
		case "绿灯":
			System.out.println("绿灯行");
			break;	
		case "黄灯":
			System.out.println("黄灯等一等");
			break;
		default:
			System.out.println("你四不四傻!!!!");
			//break;
	}
	
	byte i = 10;
	switch(i){
		case 1:
			System.out.println("1");
			break;
		case 10:
			System.out.println("10");
			break;	
		case 100:
			System.out.println("100");
			break;
	}
	
	char ch = 'a';
	switch(ch){
		case 'a':
			System.out.println("a");
			break;
		case 'b':
			System.out.println("b");
			break;	
		}
	
	}
}

三,循环语句

循环结构: ​ 控制一些代码重复执行多次

for循环
while循环
do..while循环

1,for循环

		for(条件初始化;条件判断;条件变化){
			重复执行的语句;
		}
		条件初始化: 声明一个变量并且第一次赋值 i
		条件判断 : 对变量i的值的判断->结果为boolean的值
		条件变化 : 变量i自身值的改变
		
		执行流程:
			1.条件初始化,得到一个变量i
			2.条件判断的结果->boolean
			3.true->执行{}中的代码->false结束循环
			4.条件变化
			重复执行第2,3,4步骤
	注意: 
		循环结构中,如果{}中的语句体只有一句,前后的{}可以省略
		循环体重可以使用循环的条件变量i,可以不使用
		for循环是循环结构中最常用的循环结构 *****
public class Class007_For{
	public static void main(String[] args){
		//打印一句话->重复打印10次
		//System.out.println("安红,我想你想的睡不着觉!!!!");
		//System.out.println("安红,我想你想的睡不着觉!!!!");
		
		for(int i=1;i<=10;i++)
			System.out.println("安红,我想你想的睡不着觉!!!!"+i);
		
		//计算1~4之间整数的和
		int sum = 0; //记录整数和
		for(int i=1;i<=4;i++)
			sum += i;
		
		System.out.println(sum);
		//System.out.println(i);  //作用域只属于当前定义的循环结构
	}
}

 

public class Class008_ForTest { public static void main(String[] args) { //求1-100的和,求1-100的偶数和,求1-100的奇数和 //1)找到1~100之间的每个数 //2)求和 int sum = 0 ; //存储1~100之间整数和 int sum1 = 0 ; //存储奇数和 int sum2 = 0 ; //存储偶数和 for(int i=1;i<=100;i++){ System.out.println(i); sum+=i; //sum = sum+i; } System.out.println(sum);

	//偶数和
	for(int i=0;i<=100;i++){
		//偶数
		if(i%2==0){
			sum2+=i;
		}else{
			//奇数
			sum1+=i;
		}
	}
	
	sum2 = 0; //归零
	for(int i=0;i<=100;i+=2){
		sum2+=i;
	}
	
	System.out.println("奇数和 = "+sum1);
	System.out.println("偶数和 = "+sum2);
	
	//1-50当中能被4整除的数的和
	sum = 0;
	for(int i=1;i<=50;i++){
		if(i%4==0){
			sum+=i;
		}
	}
	
	System.out.println(sum);

 

	//求出 1-100当中既能被3整除又能被5整除还能被2整除的和, 
	sum = 0;
	for(int i=1;i<=100;i++){
		if(i%2==0 && i%5==0 && i%3==0){
			sum+=i;
		}
	}
	System.out.println(sum);
	
	//求出 1-100当中能被3整除或者能被5整除或者能被2整除的和
	sum = 0;
	for(int i=1;i<=100;i++){
		if(i%2==0 || i%5==0 || i%3==0){
			sum+=i;
		}
	}
	System.out.println(sum);
	
	//求5的阶乘  5! 5*4*3*2*1 
	int result = 1; //记录乘积
	for(int i=5;i>=1;i--){
		result*=i;
	}
	System.out.println(result);
	
	System.out.println("--------------------------------------------");
	
	//请找出[100,300]之间能被5整除的所有数,每行输出8个数
	int count = 0; //计数器
	for(int i =100;i<=300;i++){
		if(i%5==0){
			System.out.print(i+"\t");
			//计数器+1
			count++;
			//换行的条件  每行输出8个
			/*
			//1.
			if(count==8){
				System.out.println();  //换行
				count = 0; //计数器归零
			}
			*/
			//2.
			if(count%8==0){
				System.out.println();  //换行
			}
		}
	}
	//请找出[100,300]之间能被5整除的所有数,每行输出8个数,每两个数之间用逗号隔开
	System.out.println("--------------------------------------------");
	System.out.println("--------------------------------------------");
	System.out.println("--------------------------------------------");
	
	count = 0; //计数器
	for(int i =100;i<=300;i++){
		if(i%5==0){
			//即将要打印的数据是每行的第一个数据,第一个数据只打印数据值,不打印,
			if(count==0){
				System.out.print(i);
			}else{
				System.out.print(","+i);
			}
			//计数器+1
			count++;
			//换行的条件		
			if(count==8){
				System.out.println();  //换行
				count = 0; //计数器归零
				}
			}
		}
	}
}

2,while循环

while 条件循环 条件初始化; while(条件判断){ 重复执行的语句体; 条件变化; } 注意 : 循环之间都可以相互转换

public class Class009_While { public static void main(String[] args) { //打印20~30之间的整数 for(int i=20;i<=30;i++){ System.out.println(i); }

public class Class009_While {
	public static void main(String[] args) {
		//打印20~30之间的整数
		for(int i=20;i<=30;i++){
			System.out.println(i);
		}
		
		int i=20;  //作用域从声明开始,到main方法的结束
		while(i<=30){
			System.out.println(i);
			i++;
		}
		
		//死循环
		boolean flag = false;
		while(flag)
			System.out.println("执行不到1");
		
		
		//System.out.println(i);  //错误: 无法访问的语句
	}
}

3,结束与跳过

break与continue break: 作用 : 终止 结束 应用场景 : switch语句 循环中 continue : 作用 : 跳过当前这一次循环,直接进入到下一次循环 应用场景 : 循环中

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值