系列文章目录
提示:阅读本章之前,请先阅读目录
文章目录
前言
scanner 获取用户输入
scanner.nextLine()
读取一整行的数据
package com.smobell.www.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
// 先创建一个scanner对象
Scanner scanner = new Scanner(System.in);
// 获取输入
System.out.println("请输入您的姓名:");
String str = scanner.nextLine();
// 输出
System.out.println("系统已读取到您输入的:" + str);
// 关闭scanner
scanner.close();
}
}
scanner.next()
只读取有效数据,空格之前的数据
package com.smobell.www.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
// 创建scanner
Scanner scanner = new Scanner(System.in);
// 获取输入
System.out.println("请输入您的学号:");
String str = scanner.next();
// 输出
System.out.println("系统已读取到您的学号:" + str);
// 关闭
scanner.close();
}
}
scanner.hasNextLine()
判断有没有输入
package com.smobell.www.scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
// 创建
Scanner scanner = new Scanner(System.in);
// 读取
System.out.println("请输入您的数字:");
if (scanner.hasNextLine()) {
String str = scanner.nextLine();
System.out.println("系统已读取到您的输入:" + str);
} else {
System.out.println("系统无法识别您的输入");
}
scanner.close();
}
}
scanner,属于IO流,就是和电脑设备进行输入,输出的操作,最好养成习惯性的使用close,关闭,,这样可以优化资源
scanner进阶
计算多次输入的数字之和,平均值,次数
package com.smobell.www.scanner;
import java.util.Scanner;
public class Demo05 {
/**
* 计算多次输入的数字之和,平均值,次数
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double sum = 0.0;
int count = 0;
System.out.println("请输入数字(整数,负数,小数点),可多次输入,如需结束,输入exit!");
while (scanner.hasNextDouble()) {
double x = scanner.nextDouble();
count++;
sum += x;
System.out.println("第"+count+"次,总和:"+sum+",平均值:"+(sum/count)+",个数:"+count);
}
System.out.println("【计算结束】第"+count+"次,总和:"+sum+",平均值:"+(sum/count)+",个数:"+count);
scanner.close();
}
}
运行结果
判断是不是整数,是不是浮点数
package com.smobell.www.scanner;
import java.util.Scanner;
public class Demo04 {
/**
* 判断是不是整数,是不是浮点数
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = 0;
float f = 0.0F;
System.out.println("请输入整数:");
if (scanner.hasNextInt()) {
i = scanner.nextInt();
System.out.println("您输入了整数为:" + i);
} else {
// 这里进行一个接收,否则会把结果带给下一个scanner
String x = scanner.next();
System.out.println("您输入的不是整数!" + x);
}
System.out.println("请输入浮点数:");
if (scanner.hasNextFloat()) {
f = scanner.nextFloat();
System.out.println("您输入了浮点数为:" + f);
} else {
String x = scanner.next();
System.out.println("您输入的不是浮点数!" + x);
}
scanner.close();
}
}
运行结果
顺序结构
学习知识,结构,英文单词:structure
package com.smobell.www.structure;
public class Demo01 {
public static void main(String[] args) {
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
}
}
流程控制 if结构
package com.smobell.www.study_if;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个文本:");
String text = scanner.next();
// if 单选择结构
if (text.equals("smobee")) {
System.out.println("确认过眼神,是我要找的人");
} else {
System.out.println("抱歉,您不是我要找的人");
}
// if 双选择结构
System.out.println("请输入一个分数:");
double score = scanner.nextDouble();
if (score >= 60) {
System.out.println("您的分数是及格的!");
} else {
System.out.println("您的分数是不及格!");
}
// if 多选择结构
if (score >= 90) {
System.out.println("您的分数等级是,甲");
} else if (score >= 80) {
System.out.println("您的分数等级是,乙");
} else if (score >= 70) {
System.out.println("您的分数等级是:丙");
} else {
System.out.println("您的分数等级是,丁");
}
// 嵌套的if结构
if (score >= 60) {
if (score >=99) {
System.out.println("恭喜您,获得奖学金一份!");
} else {
System.out.println("很遗憾,您不符合奖学金资格!");
}
}
}
}
流程控制 Switch选择结构
package com.smobell.www.study_switch;
public class Demo01 {
public static void main(String[] args) {
// 定义
String name = "smobee";
// JAVA JDK 7 以后才支持的字符串作为变量
switch(name) {
case "xmfboss":
System.out.println("Hello xmfboss");
break; // 不加break,则会继续执行下面的case
case "smobee":
System.out.println("Hello smobee");
break; // 不加break,则会继续执行下面的case
default:
System.out.println("结束,没有匹配到");
}
}
}
解析源码,即反编译,,jdk7是如何支持字符串作为变量的,因为jdk7之前,你只能用数字来作为识别变量
我们打开这个路径之后,通过文件夹的方式,把他拷贝到现在的项目路径,然后再通过idea打开
演示
通过反编译之后,我们可以看到,是通过hasCode获得哈希码,然后再赋值给var3变量,再通过数字的形式
流程控制 while循环结构
计算1+2+…+100的结果
package com.smobell.www.study_while;
public class Demo01 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<=100) {
sum += i;
i++;
System.out.println("本次结果:" + sum);
}
}
}
流程控制 do…while循环结构
在执行while之前,会先执行一次do
package com.smobell.www.study_while;
public class Demo01 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<=100) {
sum += i;
i++;
System.out.println("本次结果:" + sum);
}
int b = 0;
int sum2 = 0;
do {
sum2 += b;
b++;
System.out.println("还没开始计算前的sum值为:" + sum2);
} while (b <= 100);
}
}
流程控制 for循环结构
package com.smobell.www.study_for;
public class Demo01 {
public static void main(String[] args) {
// 死循环
for (; ;) {
System.out.println("hello");
}
// 计算1~100之间,偶数和,奇数和
int evenNum = 0; // 偶数
int oddNum = 0; // 奇数
for (int i = 1; i <= 100; i++) {
if (i%2 == 0) evenNum += i;
if (i%2 != 0) oddNum += i;
}
System.out.println("偶数和:" + evenNum);
System.out.println("奇数和:" + oddNum);
// 计算1~1000,是5的倍数的,每行输出5个
for (int i = 1; i <= 1000; i++) {
if (i % 5 == 0) {
if (i%(5*6) != 0) {
System.out.print(i + " ");
} else {
System.out.println();
}
}
}
}
}
九九乘法表
package com.smobell.www.study_for;
public class Demo02 {
public static void main(String[] args) {
// 外层,代表每一行
for (int i = 0; i <= 9; i++) {
// 内层,代表每个算法
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i*j + "\t");
}
System.out.println();
}
}
}
增强型for循环
package com.smobell.www.study_for;
public class Demo03 {
public static void main(String[] args) {
int[] number = {1,2,3,4,5,6,7,8,9,10};
// 普通for循环
for (int i = 0; i < number.length; i++) {
System.out.println(number[i]);
}
// 增强型for循环
for(int x:number) {
System.out.println(x);
}
}
}
同样会输出
1
2
3
4
5
6
7
8
9
10
break 和 continue
package com.smobell.www.study_for;
public class Demo04 {
public static void main(String[] args) {
// break
for (int i = 0; i < 10; i++) {
// i 等于5的时候,结束
if (i == 5) break;
System.out.print(i + " ");
}
System.out.println();
// continue i 是偶数,跳过
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) continue;
System.out.print(i + " ");
}
}
}
运行结果
打印三角形
package com.smobell.www.study_for;
public class Demo05 {
public static void main(String[] args) {
// 外层,打印五行
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();
}
}
}
运行结果
更新日志
提示:将会持续优化更新