目录
一、键盘录入Scanner
1.作用
作用:键盘输入
2.使用
使用:
1.创建Scanner对象
Scanner 变量名(Scanner对象) = new Scanner(System.in);
2.键盘录入输入
String 变量名(用户键盘输入的字符串信息) = Scanner对象.next();
int 变量名(用户键盘输入的整数信息) = Scanner对象.nextInt();
3.举例
//导包
package com.scanner.demo;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//死循环
while (true) {
//创建键盘录入对象
Scanner sca = new Scanner(System.in);
//提示并录入账户
System.out.print("请输入账号:");
//提示并录入密码
String username = sca.next();
System.out.print("请输入密码:");
String password = sca.next();
//判断输入的账户密码是否和设定的账号密码相等
if (username.equals("admin") && password.equals("jiushimima")) {
//相等则显示登陆成功
System.out.println("登录成功");
break;
}else {
//不相等则显示账号密码不匹配,请重新输入
System.out.println("账号密码不匹配,请重新输入");
}
}
}
}
4.练习
(循环)输入一个整数
计算它各位上数字的和(注意:是任意位的整数)
分析
分析:
1)导包
2)创建键盘录入对象
3)录入一个n这个数据
4)定义最终结果变量 int sum = 0;
5)不明确循环次数,使用while循环
条件:
n!=0,一直循环
假设:
录入的数据:123
sum = sum + (123%10);//获取低位,并将结果进行求和
n = 123/10;//去除低位
代码
//导包
import java.util.Scanner;
//(循环)输入一个整数
//计算它各位上数字的和(注意:是任意位的整数)
public class Test01 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner scanner = new Scanner(System.in);
//提示并录入数据
System.out.print("请输入一个数据:");
int num = scanner.nextInt();
//定义最终结果变量
int sum = 0;
//循环判断
while(num != 0) {
//获取低位并将结果和sum求和
sum += (num%10);
//去除低位
num /= 10;
}
System.out.println("sum="+sum);
}
}
结果
二、随机数Random
1.作用
作用:产生一个随机数
2.使用
使用:
1.创建Random对象
Random 变量名(random对象) = new Random();
2.获取随机数
不限定范围的随机数
int 变量名(获取到的随机数) = random对象.nextInt();
限定范围的随机数
int 变量名(获取到的随机数) = random对象.nextInt(最大值);
取值范围:0~最大值-1
3.举例
1)不限定范围的随机数
代码
import java.util.Random;
public class Demo02 {
public static void main(String[] args) {
//创建随机数Random对象
Random random = new Random();
//循环10次
for (int i = 0; i < 10; i++) {
//不限定范围的随机数
int j = random.nextInt();
System.out.println(j);
}
}
}
结果
2)限定范围的随机数
代码
import java.util.Random;
public class Demo02 {
public static void main(String[] args) {
//创建随机数Random对象
Random random = new Random();
//循环10次
for (int i = 0; i < 10; i++) {
//限定范围的随机数
int j = random.nextInt(3);
System.out.println(j);
}
}
}
结果
4.练习
案例
案例:使用Random生成6为验证码
要求:数字,小写字母,大写字母
代码
import java.util.Random;
public class Test02 {
public static void main(String[] args) {
//创建Random对象
Random random = new Random();
//定义一个变量记录生产的验证码
String code ="";
//循环6次,每次生成1位随机数
for (int i = 0; i < 6; i++) {
/*
* 生成1位随机数
* 获取一位随机数,判断是小写字母,大写字母,数字
* 0:生成1位数字
* 1:生成1位小写字母
* 2:生成1位大写字母
*/
//由于是0,1,2随机
int tag = random.nextInt(3);
//判断
switch (tag) {
//如果随机数是0,生成数字0~9
case 0:
//随机生成一个0~9数字
int num = random.nextInt(10);
//将生成的数字记录
code += num;
break;
//如果随机数是1,生成小写字母a~z,ASCII码对照表97~122
case 1:
//最大值26:0~25,+97:97~122
int xNum = random.nextInt(26)+97;
//强制类型转换
char xWord = (char)xNum;
//将生成的小写字母记录
code += xWord;
break;
//如果随机数是2,生成大写字母A~Z,ASCII码对照表65~90
case 2:
//最大值26:0~25,+65:65~90
int dNum = random.nextInt(26)+65;
//强制类型转换
char dWord = (char)dNum;
//将生成的大写字母记录
code += dWord;
break;
default:
break;
}
}
System.out.println("本次验证码为:"+code);
}
}
结果
三、跳转控制语句
1.关键字
1)break
2)continue
3)return
2.使用
1)break
中断,结束(不能单独使用)
在switch和循环中使用
2)continue
继续
在循环中使用
结束当前循环,立即进入下一次循环
3)return
返回
单独使用
结束方法
终止"return;"后面的代码
结合有具体返回值类型的方法使用
返回方法指定类型的值/对象
1)break
代码
class BreakDemo{
public static void main(String[] args){
//循环
//break在单层循环中使用
for(int i = 0;i < 10;i ++){
//判断
if(i == 3){
//跳过当前循环
break;
}
System.out.println(i);
}
}
}
结果
2)continue
代码
public class ContinueDemo {
public static void main(String[] args){
for(int i = 0; i < 10;i++){
if(x==3){
//跳出当前循环,立即进入下一次循环
continue;
}
System.out.println(i);
}
System.out.println("over");
}
}
结果
3)return
代码
public class ReturnDemo {
public static void main(String[] args){
//程序:引入return
System.out.println("程序开始了...");
for(int x = 0; x < 10; x ++){
System.out.println("进入for循环了...");
if(x == 3){
//单独使用,结束方法的
return;
}
System.out.println(x);//0,1,2
}
}
}
结果
四、方法
1.作用
作用:
封装一段代码,使其便于使用
2.优点
优点:
1.便于使用
2.降低了代码的冗余度
3.降低代码的耦合度,保护内部
4.提高了代码的可读性
3.使用
注意:方法在类以内,方法以外定义
1)定义一个没有参数的方法
语法:
public static void 方法名(){
方法体;
}
代码
public static void add01() {
int num01 = 10;
int num02 = 1;
int num = num01 + num02;
System.out.println("没有参数的方法求和"+num);
}
2)调用一个没有参数的方法
语法:
方法名();
代码
public class Demo01 {
public static void main(String[] args) {
//调用
add01();
}
/*
* 定义一个没有参数的方法
*/
public static void add01() {
int num01 = 10;
int num02 = 1;
int num = num01 + num02;
System.out.println("没有参数的方法求和"+num);
}
}
结果
1)定义一个有参数的方法
语法:
public static void 方法名(数据类型1 变量名1,数据类型2 变量名2,...){
方法体;
}
名词介绍:
定义方法时小括号中的内容称为形参列表
代码
/**
* 定义一个有参数的方法
* 该方法用于计算两数之和
* @param a 加数
* @param b 被加数
*/
public static void add02(int a,int b) {
int sum = a + b;
System.out.println("有参数的方法求和:"+sum);
}
2)调用一个有参数的方法
语法:
方法名(实参列表);
注意:
1.实参列表中的内容要与调用的方法的形参列表长度一致
2.实参列表中的内容要与调用的方法的形参列表数据类型一致
3.实参列表中的内容要与调用的方法的形参列表顺序一致
代码
public class Demo02 {
public static void main(String[] args) {
//调用
add02(10, 1);
}
/**
* 定义一个有参数的方法
* 该方法用于计算两数之和
* @param a 加数
* @param b 被加数
*/
public static void add02(int a,int b) {
int sum = a + b;
System.out.println("有参数的方法求和:"+sum);
}
}
结果
1)定义一个有返回值的方法
语法:
public static 返回值的数据类型 方法名(){
方法体;
return 数据;
}
注意:
1.void:没有返回值(返回值类型为空)
2.return:单独使用表示结束方法,如果后面有数据表示结束方法并返回该数据
3.如果有返回值得方法中使用分支语句结束,每个分支都得有返回值,并且这些返回值的数据类型统一
代码
/**
* 定义了一个有返回值的方法
* @return
*/
public static int add03() {
int num01 = 1;
int num02 = 2;
int num = num01 + num02;
System.out.println("代码被执行了");
return num;
}
2)调用一个有返回值的方法
语法:
方式1:
不接收返回值
方法名();
方式2:
接收返回值
数据类型 变量名 = 方法名();
public class Demo03 {
public static void main(String[] args) {
//不接收返回值
add03();
System.out.println("--------------");
//接收返回值
int sum = add03();
System.out.println("有返回值的方法求和:"+sum);
}
/**
* 定义了一个有返回值得方法
* @return
*/
public static int add03() {
int num01 = 10;
int num02 = 1;
int num = num01 + num02;
System.out.println("代码被执行了");
return num;
}
}
结果
1)定义一个有参数有返回值的方法
语法:
public static 返回值的数据类型 方法名(数据类型1 变量名1,数据类型2 变量名2,...){
方法体
return 数据;
}
代码
/**
* 定义了一个有参数有返回值得方法
* @return
*/
public static int add04(int num01,int num02 ) {
int num = num01 + num02;
System.out.println("代码被执行了");
return num;
}
2)调用一个有参数有返回值的方法
语法:
方式1:
不接收返回值
方法名(实参列表);
方式2:
接受返回值
数据类型 变量名 = 方法名(实参列表);
代码
public class Demo04 {
public static void main(String[] args) {
//不接收返回值
add04(10,1);
System.out.println("--------------");
//接收返回值
int sum = add04(10,1);
System.out.println("有参数有返回值的方法求和:"+sum);
}
/**
* 定义了一个有参数有返回值得方法
* @return
*/
public static int add04(int num01,int num02 ) {
int num = num01 + num02;
System.out.println("代码被执行了");
return num;
}
}
结果
4.方法的多重调用
在方法A中调用方法B就称为多重调用
注意:尽量避免互相调用
5.递归
在方法A中调用方法A
注意:尽量避免使用递归计算与算法相关的内容
6.可变参数
使用位置:形参列表末尾使用
定义:数据类型... 变量名
如:
public static void add(int... nums){
}