- 1. 用户交互Scanner
- Scanner对象
- 2. 顺序结构
- 3. 选择结构
- 反编译
- 4. 循环结构
- while循环(先判断后执行)
- do...while循环(先执行,后判断)
- for循环
- 增强for循环
- 5. break & continue
- 关于goto关键字
- 求质数
- 6. 练习
- 打印三角形
java.util.Scanner是Java5的新特性,使用Scanner类来获取用户的输入
- 通过Scanner类与next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
package com.tang.easy;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一些内容:");
//判断用户有没有输入字符串
if(scanner.hasNextLine()){
//使用nextLine方式接收
String string =scanner.nextLine();
System.out.println(string);
}
//凡是属于IO流的类,如果不关闭会一直占用资源,要养成好习惯,用完就关闭
scanner.close();
}
}
Scanner对象
- next() :
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next()不能得到带有空格的字符串
- nextLine():
- 以enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白
按住ctrl点击Scanner,可查看当中的其他方法
点击左侧Structure会显示方法目录
输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
package com.tang.easy;
import java.util.Scanner;
public class Demo3_1 {
public static void main(String[] args) {
int i=0;//用来计数,到当前为止输入了多少个数字
double sum=0.0;//求和
Scanner scanner = new Scanner(System.in);
//用循环来判断是否还有输入,并在里面对每一次进行统计(输入数字的个数)和求和
while (scanner.hasNextFloat()){
double x = scanner.nextDouble();
i++;
sum+=x;
System.out.println("第"+i+"个数据:"+x+"n当前总和sum="+sum);
}
System.out.println("输入了"+i+"个数据,其平均值是:"+(sum/i));
scanner.close();
}
}
2. 顺序结构
从上往下执行
3. 选择结构if(布尔表达式){
//布尔表达式为true
}else{
//false
}
if...
else if...
else if...
...
else...
package com.tang.easy;
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入数据:");
String x=s.nextLine();
//判断括号里的字符串与输入的数据是否一致(少用==进行该判断)
if (x.equals("Hello")){
System.out.println("你输入的是:"+x);
}else{
System.out.println("你输入的不是Hello");
}
System.out.println("End");
s.close();
}
}
- Switch多选择结构
- byte、short、int 、char
- 从Java SE7 开始,switch 支持字符串String类型
- 同时,case 标签必须为字符串常量或字面量
package com.tang.easy;
public class Demo5_1 {
public static void main(String[] args) {
String a="aaaaaa";
switch (a){
case "aaaaaa":
System.out.println("匹配成功");
break;
default:
System.out.println("匹配失败");
}
}
}
反编译
Java—class(字节码文件)—反编译(idea)
public class Demo6 {
public static void main(String[] args) {
//死循环
while(true){
//等待客户端连接
//定时检查
//......
break;//跳出死循环
}
}
}
计算1+2+3+…+100.
package com.tang.easy;
public class Demo6 {
public static void main(String[] args) {
int i=0;
int sum=0;
while(i<=100){
sum+=i;
i++;
}
System.out.println(sum);//5050
}
}
do…while循环(先执行,后判断)
package com.tang.easy;
public class Demo6 {
public static void main(String[] args) {
int i=0;
int sum=0;
do{
sum+=i;
i++;
}while(i<=100);
System.out.println(sum);//5050
}
}
for循环
//初始化//条件判断//迭代~更新
for (int s=0;s<=100;s++){
//代码语句~循环体
}
//for(;;)//死循环
增强for循环
- Java5引入了一种主要用于数组或集合的增强型for循环
public class Demo6_3 {
public static void main(String[] args) {
int[] number = {10,20,30,40,50,66};//声明一个数组
for(int x:number){//将每一个number的具体值赋给x
System.out.println(x);//输出每一个x
}
}
}
- 声明语句:声明心得局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相同。
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
break:退出整个循环体。
for(int i=0;i<100;i++){
if(i==30){
break;//当条件成立时,跳出整个循环,不再执行for中的任何语句
}
System.out.println(i);
}
continue:结束当前循环
for(int i=0;i<100;i++){
if(i%10==0){
System.out.println();
continue;//当条件成立时,结束本次循环,continue之后的语句将不执行
}
System.out.println(i);
}
关于goto关键字
- goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continue两个关键字身上仍然能看出一下goto的影子—带标签的break和continue。
- “标签”是指后面跟一个冒号的标识符,例如:lable:
- 对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由就是:我们希望在其中嵌套另一个循环,由于break和contine关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方。
//普通求法
public class Demo6_goto {
public static void main(String[] args) {
int x=0;
int count=0;
for (int i = 2; i < 100; i++) {
x=0;
for (int j=2;j
6. 练习
打印三角形
public class Demo6_5 {
public static void main(String[] args) {
for (int i = 0; i <5; i++) {
for (int j = 1; j <10; j++) {
if (j>=5-i&&j<=5+i){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
public class Demo6_5_1 {
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


