The second dayof self-learning java
用户交互
Scanner对象
基本语法:
Scanner s = new Scanner(System.in);
需要导包:import java.util.Scanneer;
在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
Scanner scanner = new Scanner(System.in);
System.out.println("接收数据");
if(scanner.hasNext()){
String str = scanner.next();
System.out.println("输出的内容为:"+str);
}//输入 s n 输出为空格前的部分 s
scanner.close();//凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用完就关掉。
Scanner scanner = new Scanner(System.in);
System.out.println("接收数据");
if(scanner.hasNextLine()){
String str = scanner.nextLine();//以回车为结束符
System.out.println("输出的内容为:"+str);
}//输入 s n 输出为空格前的部分 s n
scanner.close();//凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用完就关掉。
-
next():
- 1、输入有效字符之前遇到的空白,next方法会自动将其去掉
- 2、只有输入有效字符之后才将其后面输入的空白符作为分隔符或结束符。
- 3、next()不能得到带有空格的字符串
-
nextLine():
- 1、nextLine()方法返回的是输入回车之前所有的字符,可以获得空白
题目:输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字结束输入并输出执行结果。
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double sum = 0.0;
int m = 0;
System.out.println("输入多个数字:");
while (scanner.hasNextDouble()){//判断是否还有数字输入
double x = scanner.nextDouble();
sum +=x;
m++;
System.out.println("你输入了"+m+"个数据"+"当前总数sum="+sum);
}
System.out.println(m+"个值的总和是"+sum);
System.out.println(m+"个值的平均数是"+sum/m);
scanner.close();
}
}
顺序结构
是最简单的算法结构,除非特别指明,否则就按照顺序一句一句执行。
选择结构
if单选择结构
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
if双选择结构
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}else{
//如果布尔表达式不为true将执行的语句
}
if多选择结构
if(布尔表达式1){
//如果布尔表达式1为true将执行的语句
}else if(布尔表达式2){
//如果布尔表达式2为true将执行的语句
}else if(布尔表达式3){
//如果布尔表达式3为true将执行的语句
}else{
//如果以上布尔表达式都不为true将执行的语句
}
switch多选择结构
case语句判断一个变量与一系列值中某个值是否相等,每一个值称为一个分支。
switch(expression){//switch匹配一个具体的值
//case穿透
//grade 成绩
case value:
//语句
break;//可选 如果不写break会执行匹配之后的全部代码 case穿透现象
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//可以有任意数量的case语句。
default://可选
//语句,以上条件都不匹配,就执行这个
}
从JavaSE7开始,switch支持字符串String类型了!!!之前只能比较8大类型
字符的本质还是数字—反编译 Java— class(字节码文件)—反编译(idea)
教程地址kuanshen p37java流程控制08:00
第一步:Project structure项目结构-》打开路径-〉 可以看到calss文件
第二步:idea在文件夹中右键打开文件夹所在目录show in explorer ,打开Java文件此时打开了两个文件夹,我们把class文件从文件夹层面移至Java文件夹,就可以查看反编译的文件。
每一个对象都有自己 的hashCode,String就是用hashcode值 判断
学会看源码,这是一个优秀的程序员具备的重要的思想
循环结构
while循环
//基本结构
while(布尔表达式){
//循环内容
}
大多数情况是会让循环停止下来,也就是表达式的值不为真的情况。
少部分情况需要一直执行代码,只要布尔表达式为true,循环就会一直执行下去。比如服务器的请求响应监听等,
do…while循环
- 很简单,与while循环的主要差别就是:
- 1、do…while循环即使不满足条件也至少执行一次,
- 2、while先判断后执行do…while先执行后判断
for循环
用的最多!是最有效,最灵活的循环结构试一试输入100.for
打印99乘法表
public class fordemo01 {
public static void main(String[] args) {
for (int j = 1; j <=9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(1+"*"+i+"="+(1*i)+"\t");
}
System.out.println();
}
}
}
增强for循环
for(申明语句 :表达式)
{
//代码语句
}
//在数组中使用
int[] number = {10,20,30,40,50};
for (int x:number){
System.out.println(x);
}
break & continue
只要碰到break就会强制退出循环,不执行循环中剩下的语句,直接跳出;
而碰到continue语句,它会跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。它很怂!
关于goto关键字
goto关键字是Java中的一个保留字,但并未在语言中得到正式使用。在break & continue中可以看到一些goto的影子,标签
流程控制练习
public class textDemo {//打印6层三角形
public static void main(String[] args) {
for (int i = 0; i <6; i++) {
for (int x = 6; x > i; x--) {
System.out.print(" ");
}
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
for (int j = 0; j <i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
debug 小蜘蛛断点操作->在程序左边点一个小红点,程序运行到这个地方时会停住
相信再小的帆也能远航~