JAVA-02(语法介绍)
JAVA-02Java流程控制
用户交互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]