1、Scanner的使用
①用户交互Scanner
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P33
next() 不能有空格,因为后面的东西会不见了
package com.shanyiyun.Scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){ //默认scanner.hasNext()==true
//使用next方式接收
String str = scanner.next();
System.out.println("输出的内容为:"+str);
}
//凡是属于IO流类的类,如果不用就会占用资源,要养成好习惯用完关掉
scanner.close();
}
}
nextLine() 输入什么就给你什么
package com.shanyiyun.Scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){ //默认scanner.hasNext()==true
//使用next方式接收
String str = scanner.next();
System.out.println("输出的内容为:"+str);
}
//凡是属于IO流类的类,如果不用就会占用资源,要养成好习惯用完关掉
scanner.close();
}
}
②Scanner 进阶使用
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P34
代码如下:(看视频跟着操作会更容易理解)
package com.shanyiyun.Scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字:");
//和
double sum = 0;
//计算输入了多少个数字
int m = 0;
//通过循环判断是否还有输入,并在里面对每一次进行求和跟统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m + 1 ; // m++
sum = sum + x ;
System.out.println("你输入了第"+m+"个数,当前的结果sum5为"+sum);
}
System.out.println(m + "个数的和为" +sum);
System.out.println(m + "个数的平均值为" +sum/m);
scanner.close();
}
}
2、顺序结构、选择结构
① 顺序结构
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P35
② 选择结构
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P36 和 【狂神说Java】Java零基础学习视频通俗易懂P37
1. if 单选择结构
代码
package com.shanyiyun.Scanner;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equals:判断字符串是否相等
if (s.equals("Hello")){
System.out.println(s);
}
System.out.println("Bey");
scanner.close();
}
}
执行
2. if 双选结构
代码
package com.shanyiyun.Scanner;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//考试分数大于60分及格,小于60分不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
int score = scanner.nextInt();
if (score>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
执行
3. if 多选择结构
代码
package com.shanyiyun.Scanner;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
/*
if 语句至多有 1 个else 语句, else 语句在所在的 else if 之后
if 语句可以有若干个else if 语句,他们必须在else语句之前
一旦其中一个else if 语句检测到为true,其他的else if 以及 else 语句都将跳过这行
*/
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score==100){
System.out.println("恭喜满分");
}else if (score<100 && score>=90){
System.out.println("A级");
}else if (score<90 && score>=80){
System.out.println("B级");
}else if (score<80 && score>=70){
System.out.println("C级");
}else if (score<70 && score>=60){
System.out.println("D级");
}else if (score<60 && score>=0){
System.out.println("不及格");
} else{
System.out.println("程序不合法");
}
scanner.close();
}
}
执行
4. 嵌套的 if 结构
5. Switch选择结构
代码1
package com.shanyiyun.Scanner;
import java.sql.SQLOutput;
public class SwitchDemo01 {
public static void main(String[] args) {
//case 穿透 switch 匹配到一个具体的值
char grade = 'F';
switch (grade){
case 'A':
System.out.println("优");
break;
case 'B':
System.out.println("良");
break;
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("再接再厉");
break;
default:
System.out.println("未知等级");
}
}
}
执行1
代码2
package com.shanyiyun.Scanner;
public class SwitchDemo02 {
public static void main(String[] args) {
String name = "单一云";
//JDK7的新特性,表达式结果可以是字符串
//字符串的本质还是数字
//反编译 Java----class(字节码文件)----反编译(IDEA)
switch (name){
case "单易":
System.out.println("单易");
break;
case "单一云":
System.out.println("单一云");
break;
default:
System.out.println("你居然不认识我");
}
}
}
执行2
3、循环结构
① while循环
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P38
1. while循环
代码1
package com.shanyiyun.Scanner;public class WhileDemo01 { public static void main(String[] args) { //输出0~100 int i = 0; while (i < 100) { i++; System.out.println(i); } }}
代码2
package com.shanyiyun.Scanner;public class WhileDemo02 { public static void main(String[] args) { //计算1+2+3+4+5+6+……+100 int i = 0; int sum =0; while (i<=100){ sum = sum + i ; i++; } System.out.println("最后结果sum="+sum); // sum=5050 }}
2. do……while循环
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P39
代码1
package com.shanyiyun.Scanner;public class DoWhileDemo01 { public static void main(String[] args) { int i = 0 ; int sum = 0 ; do { sum = sum + i; i++; }while (i<=100); System.out.println("sum="+sum); }}
代码2
package com.shanyiyun.Scanner;public class DoWhileDemo02 { public static void main(String[] args) { int a = 0; while (a<0){ System.out.println(a); a++; } System.out.println("=================="); do { System.out.println(a); }while (a<0); }}
② For循环
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P40
代码1
package com.shanyiyun.Scanner;public class ForDemo01 { public static void main(String[] args) { int a = 0;//初始化条件 while (a<=100){//条件判断 System.out.println(a); //循环体 a+=2; //迭代 } System.out.println("while循环结束"); //初始化值,条件判断,迭代 for (int i =1;i<=100;i++){ System.out.println(i); } //for循环快捷键。 数字.for+Tab 100.for System.out.println("for循环结束"); /* 关于for有以下几点说明: 最先执行初始化步骤。可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句。 然后,检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后的语句。 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减) 再次检测布尔表达式。循环执行上面的过程。 */ //死循环 /* for (;;){ System.out.println(a); }*/ }}
代码2
package com.shanyiyun.Scanner;public class ForDemo02 { public static void main(String[] args) { //练习1:0~100之间的奇数和偶数的和 int oddSum = 0; int evenSum = 0; for (int i = 0; i <= 100; i++) { if (i%2 != 0){ oddSum += i; }else { evenSum += i; } } System.out.println("oddSum="+oddSum); //2500 System.out.println("evenSum="+evenSum); //2550 }}
package com.shanyiyun.Scanner;/* 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 */public class ForDemo04 { public static void main(String[] args) { //练习3:打印九九乘法表 //1、我们先打印第一列 //2、我们把固定的1再用一个循环包起来 //3、去掉重复项,i <= j //4、调整样式 for (int j = 1; j < 9; j++) { for (int i = 1; i <= j; i++) { System.out.print(i+"*"+j+"="+(j*i)+"\t"); } System.out.println(); } }}
1. 增强for循环
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P42
代码
package com.shanyiyun.Scanner;public class ForDemo05 { public static void main(String[] args) { int[] numbers = {10,20,30,40,50}; //定义了一个数组 for (int i = 0; i < 5; i++) { System.out.println(numbers[i]); } System.out.println("================="); //遍历数组的元素 for (int x :numbers){ System.out.println(x); } }}
4、 break、continue、goto
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P43
① break
代码1
package com.shanyiyun.Scanner;public class BreakDemo01 { public static void main(String[] args) { int i =0; while (i<100){ i++; System.out.println(i); if (i==30){ break; } } System.out.println("123"); }}
② continue
代码
package com.shanyiyun.Scanner;public class ContinueDemo01 { public static void main(String[] args) { int i = 0; while (i<100){ i++; if (i%10==0){ System.out.println(); continue; } System.out.print(i+"\t"); } //break在任何循环语句的主体部分,均可用break控制循环的流程 //break用于强行退出循环,不执行循环中剩下的语句(break语句也在switch语句中使用) //continue语句用在循环语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定 }}
③ goto (Java没有,有它的影子)也不用学
代码
package com.shanyiyun.Scanner;public class LableDemo01 { public static void main(String[] args) { // 打印101-150之间的质数 //质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 int count = 0; //不建议使用 outer:for (int i =101;i<=150;i++){ for (int j=2;j<i/2;j++){ if (i%j == 0){ continue outer; } } System.out.print(i+" "); } }}
5、打印三角型及Debug
代码
package com.shanyiyun.Scanner;public class TestDemo { 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(); } }}