目录
1 引用数据类型
1.1 Scanner类
- 引用数据类型的使用
格式:
数据类型 变量名 = new 数据类型( );
每种引用数据类型都有其功能,我们可以调用该类型实例的功能
变量名.方法名( );
- Scanner使用步骤:
导包:import java.util.Scanner;
创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
int i = sc.nextInt(); 用来接收控制台录入的数字
String s = sc.next(); 用来接收控制台录入的字符串
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) {
// 创建Scanner引用类型的变量
Scanner sc = new Scanner(System.in);
// 获取数字
System.out.println("请输入一个数字");
int n = sc.nextInt();
System.out.println("n的值为" + n);
// 获取字符串
System.out.println("请输入一个字符串");
String str = sc.next();
System.out.println("str的值为" + str);
}
}
- Random使用步骤
导包:所属包java.util.Random
创建实例格式:Random 变量名 = new Random();
方法简介:
public int nextInt(int maxValue) 产生[0,maxValue)范围的随机整数,包含0,不包含maxValue;
public double nextDouble() 产生[0,1)范围的随机小数,包含0.0,不包含1.0。
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
// 创建Random类的实例
Random r = new Random();
// 得到0-100范围内的随机整数,将产生的随机整数赋值给i变量
int i = r.nextInt(100);
// 得到0.0-1.0范围内的随机小数,将产生的随机小数赋值给d变量
double d = r.nextDouble();
System.out.println(i);
System.out.println(d);
}
}
2 流程控制语句
2.1 选择结构 if
格式1: if (条件语句){ | 格式2: if (判断条件){ 执行语句1 …… }else{ 执行语句2 …… } | 格式3: if (判断条件1) { 执行语句1 } else if (判断条件2) { 执行语句2 } ... else if (判断条件n) { 执行语句n } else { 执行语句n+1 } |
选择结构:if语句与三元运算转换
int x = 0; int y = 1; int max; if (x > y) { max = x; } else { max = y; } | 相当于: int max = x > y ? x : y; |
2.2 循环语句 while,for,do...while
while: while(循环条件){ 执行语句 ……… } | for: for(初始化表达式; 循环条件; 操作表达式){ 执行语句 ……… }
for(① ; ② ; ③){ ④ } 执行步骤: 第一步,执行① 第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步 第三步,执行④ 第四步,执行③,然后重复执行第二步 第五步,退出循环 | do...while: do { 执行语句 ……… } while(循环条件);
do…while循环语句循环体会无条件执行一次,再根据循环条件来决定是否继续执行。 |
2.3 无限循环
while(true){ } | for(;;){ } |
2.4 循环嵌套
格式:
for(初始化表达式; 循环条件; 操作表达式) { ……… for(初始化表达式; 循环条件; 操作表达式) { 执行语句 ……… } ……… } |
public class ForForDemo {
public static void main(String[] args) {
int i, j; // 定义两个循环变量
for (i = 1; i <= 9; i++) { // 外层循环
for (j = 1; j <= i; j++) { // 内层循环
System.out.print("*"); // 打印*
}
System.out.print("\n"); // 换行
}
}
}
结果:
2.5 跳转语句(break、continue)
break:在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
//eg1:
public class BreakDemo {
public static void main(String[] args) {
int x = 1; // 定义变量x,初始值为1
while (x <= 4) { // 循环条件
System.out.println("x = " + x);
// 条件成立,打印x的值
if (x == 3) {
break;
}
x++; // x进行自增
}
}
}
//eg2:
public class BreakDemo02 {
public static void main(String[] args) {
int i, j; // 定义两个循环变量
a: for (i = 1; i <= 9; i++) { // 外层循环
for (j = 1; j <= i; j++) { // 内层循环
if (i > 4) { // 判断i的值是否大于4
break a; // 跳出外层循环
}
System.out.print("*"); // 打印*
}
System.out.print("\n"); // 换行
}
}
}
continue:终止本次循环,执行下一次循环
public class ContinueDemo {
public static void main(String[] args) {
int sum = 0; // 定义变量sum,用于记住和
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) { // i是一个偶数,不累加
continue; // 结束本次循环
}
sum += i; // 实现sum和i的累加
}
System.out.println("sum = " + sum);
}
}
// 上述代码中,使用for循环让变量i的值在1~100之间循环,在循环过程中,当i的值为偶数时,将执行continue语句结束本次循环,
// 进入下一次循环。当i的值为奇数时,sum和i进行累加,最终得到1~100之间所有奇数的和,打印“sum= 2500”。
public static void main(String[] args) {
int sum = 0; // 定义变量sum,用于记住和
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) { // i是一个偶数,不累加
continue; // 结束本次循环
}
sum += i; // 实现sum和i的累加
}
System.out.println("sum = " + sum);
}
}
// 上述代码中,使用for循环让变量i的值在1~100之间循环,在循环过程中,当i的值为偶数时,将执行continue语句结束本次循环,
// 进入下一次循环。当i的值为奇数时,sum和i进行累加,最终得到1~100之间所有奇数的和,打印“sum= 2500”。
2.6 猜数字案例
public class GuessNumber {
public static void main(String[] args) {
// 1.通过Random类中方法nextInt(),生成一个1-100之间的随机数
int randomNumber = new Random().nextInt(100);
System.out.println("随机数已生成!");
// 2.输入猜的数字
System.out.println("----请输入您猜的数字:----");
Scanner sc = new Scanner(System.in);
int enterNumber = sc.nextInt();
// 3.通过while循环,进行猜数字对错判断
// 猜对,跳出循环,游戏结束
while (enterNumber != randomNumber) {
// 猜错了,根据结果,给出提示,接着猜数字,游戏继续
if (enterNumber > randomNumber) {
// 如果猜大了,打印sorry,您猜大了!继续下一次循环
System.out.println("sorry,您猜大了!继续下一次循环");
} else {
// 如果猜小了,打印sorry,您猜小了!继续下一次循环
System.out.println("sorry,您猜小了!继续下一次循环");
}
// 输入猜的数字
System.out.println("----请输入您猜的数字:----");
enterNumber = sc.nextInt();
}
System.out.println("恭喜您,答对了!");
}
}
public static void main(String[] args) {
// 1.通过Random类中方法nextInt(),生成一个1-100之间的随机数
int randomNumber = new Random().nextInt(100);
System.out.println("随机数已生成!");
// 2.输入猜的数字
System.out.println("----请输入您猜的数字:----");
Scanner sc = new Scanner(System.in);
int enterNumber = sc.nextInt();
// 3.通过while循环,进行猜数字对错判断
// 猜对,跳出循环,游戏结束
while (enterNumber != randomNumber) {
// 猜错了,根据结果,给出提示,接着猜数字,游戏继续
if (enterNumber > randomNumber) {
// 如果猜大了,打印sorry,您猜大了!继续下一次循环
System.out.println("sorry,您猜大了!继续下一次循环");
} else {
// 如果猜小了,打印sorry,您猜小了!继续下一次循环
System.out.println("sorry,您猜小了!继续下一次循环");
}
// 输入猜的数字
System.out.println("----请输入您猜的数字:----");
enterNumber = sc.nextInt();
}
System.out.println("恭喜您,答对了!");
}
}