JAVA-02
Java流程控制
用户交互Scanner
Scanner类
属于IO流的类如果不关会一直占用资源
常用方法
【Scanner scanner = new Scanner(System.in);】
.next(); 遇到空格就结束接收
.nextLine(); 遇到enter就结束接收
.hasNext() 判断是否有输入
.hasNextInt() 判断是否有整数输入
.close(); 关闭
举例【instance】
- package com.xy.base;
- import java.util.Scanner;
- public class Demo11 {
- public static void main(String[] args) {
- //创建一个扫描对象,用于接收键盘数据
- Scanner scanner = new Scanner(System.in);
- System.out.println("使用next方式接收:");
- //判断用户有没有输入字符串
- if(scanner.hasNext()){
- //使用next接收
- String str = scanner.next();
- System.out.println("输入的内容为:"+str);
- }
- System.out.println("使用nextLine方式接收:");
- if(scanner.hasNext()){
- //使用next接收
- String str1 = scanner.nextLine();
- System.out.println("输入的内容为:"+str1);
- }
- System.out.println("请输入一个整数:");
- //判断输入的是否为整数【判断是否有整数输入】
- if(scanner.hasNextInt()){
- int i = scanner.nextInt();
- System.out.println("输入的整数为:"+i);
- }else{
- System.out.println("输入的不是整数!");
- }
- //凡是属于IO流的类如果不关会一直占用资源
- scanner.close();
- }
- }
复制代码 输入多个数字,并求其总和与平均值,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果- package com.xy.base;
- import java.util.Scanner;
- public class Demo11_instance {
- public static void main(String[] args) {
- //输入多个数字,并求其总和与平均值,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果
- int count = 0;
- double sum = 0;
- Scanner scanner = new Scanner(System.in);
- System.out.println("请输入数据:");
- //while判断是否是数字输入
- while (scanner.hasNextDouble()){
- count++;
- sum = sum + scanner.nextDouble();
- }
- System.out.println(count + "个数据总和为:" + sum);
- System.out.println(count + "个数据平均数为:" + sum/count);
- //关闭!!!!!!不要忘记
- scanner.close();
- }
- }
复制代码 三种结构(顺序、选择、循环)
顺序结构
- Java最基本的结构,最简单的算法结构
- 任何算法都离不开的
- 一条一条从上到下执行
- System.out.println("顺序结构!");
- System.out.println("顺序结构!");
- System.out.println("顺序结构!");
复制代码 选择结构
1. if单选择结构
2. if...else双选择结构
- if(条件式){
- //满足表达式执行的语句
- }else{ //不满足表达式执行的语句}
复制代码 3. if...else if多选择结构
- if(条件式1){
- //满足表达式1执行的语句
- }else if(条件式2){
- //满足表达式2执行的语句
- }else{
- //都不满足执行的语句
- }
复制代码 4. 嵌套的if结构
- if(条件式1){
- if(条件式1){
- //满足表达式1和2执行的语句
- }
- }else{
- //不满足表达式1执行的语句
- }
复制代码 5. switch多选择结构
- 语法:
- switch(expression){ //expression变量
- case value: //【可选】判断变量的值是否等于value值
- //语句
- break; //【可选】 若不选,会有case穿透效果
- case value:
- //语句
- break;
- ...
- default: //【可选】 以上case都不满足时执行default
- //语句
- }
复制代码 - case穿透效果:如果当前case满足且结束没有break语句,那么将会执行下面所有的case,直到遇见break语句。
- switch中的变量类型 :byte、short、int或者char
- 从Java SE7开始支持字符串String类型
- String x = "注意";
- switch (x){
- case "注意":
- System.out.println("注意");
- case "协议":
- System.out.println("协议");
- break;
- default:
- System.out.println("default");
- }
复制代码 循环结构
1. while循环
2. do...while循环
- 语法
- while和do...while的区别
- while先判断再执行,do...while先执行在判断
- do...while至少执行一次,while可以一次也不执行
3. for循环
- 语法
- for(初始化;布尔表达式;更新){
- //循环内容
- }
复制代码 - 最有效,最灵活的循环结构
- 循环次数是在执行之前就已经确定的
- fou循环 :先初始化,在判断真假,若为真则执行循环体,然后更新;若为假,则跳出循环
- for (int i = 0; i < 5; i++) {
- System.out.println("i:" + i);
- System.out.println("第" + i + "次循环!");
- }
复制代码 - 练习:打印九九乘法表
- for(int i = 1 ; i < 10 ; i ++){
- for (int j = 1 ; j <= i ; j ++){
- //输出乘法并输出一个tab空格
- System.out.print(j + "*" +i +"=" + j*i + "\t");
- }
- //换行
- System.out.println(); //等价于 System.out.print("\n");
- }
复制代码 动态初始化
- int[] num = {10,20,30,40,50};
- for(int n:num){
- System.out.println(n);
- }
复制代码 数组默认初始化
数组是引用类型,他的元素相当于类的实例变量,因此数组在一分配空间时就已经被默认初始为相应类型的默认值了。
数组的特点
- 数组一经创建就长度确定
- 同一数组元素类型相同
- 数组中的元素可以是任何数据类型
- 数组变量属于引用类型,数组也可以看成对象
- 数组对象本身是在堆中的
Arrays类(import java.util.Arrays)
学会使用官方API帮助文档,这里介绍两个- int i = 0;
- while(i < 100){
- i++;
- if(i == 10){
- break;
- }
- System.out.println(i);
- }
复制代码 冒泡排序
- int j = 0;
- while (j < 10){
- j++;
- if (j%2 == 0) {
- continue;
- }
- System.out.println(j);
- }
复制代码 稀疏数组
- 定义:当一个数组中大部分元素都为0或同一数据时,可以使用稀疏数组来保存。
- 处理方式:
- 记录数组一共有几行几列,有多少个不同值
- 把具有不同值的元素的行和列以及值记录在一个小规模的数组中,从而缩小程序的规模
- public class Demo13_instance {
- public static void main(String[] args) {
- //规定5行
- for(int i = 1 ; i <= 5 ; i ++){
- //打印空的倒直角三角形
- for(int j = 5 ; j >= i ; j --){
- System.out.print(" ");
- }
- //打印正直角三角形
- for (int j = 1 ; j <= i ; j ++){
- System.out.print("*");
- }
- //打印关于另一半直角三角形
- for(int j = 1 ; j <= i ; j ++){
- System.out.print("*");
- }
- //换行
- System.out.println();
- }
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
|