郭卫东 发表于 2023-5-23 10:53:19

JAVA-02(语法介绍)

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单选择结构

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类型
Stringx = "注意";
switch (x){
        case "注意":
                System.out.println("注意");
    case"协议":
      System.out.println("协议");
      break;
    default:
      System.out.println("default");
}
循环结构

1. while循环


[*]语法
while(布尔表达式){
        //循环内容
}
2. do...while循环


[*]语法
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();
      }
    }
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: JAVA-02(语法介绍)