Java流程控制
用户交互Scanner
-
Scanner对象
-
通过Scanner类可以获取用户的输入,使用前需要使用import Java.util.Scanner导入类
-
基本语法Scanner s=new Scanner(System.in);
-
通过Scanner类的next()与nextLine()方法获取输入字符串,在读取前,一般使用hasNext()与hasNextLine()判断是否还有输入数据(也可以不使用)
-
-
最后IO流的类都要关闭,否则会一直占用资源
-
import java.util.Scanner;
//使用hasNext判断
public class Demo3 {
public static void main(String[] args) {
//创建一个Scanner对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str=scanner.next();
System.out.println("输入内容为:"+str);
}
//关闭IO流
scanner.close();
}
}
import java.util.Scanner;
//不使用hasNext判断
public class Demo3 {
public static void main(String[] args) {
//创建一个Scanner对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
//使用nextLine方式接收
String str=scanner.nextLine();
System.out.println("输入内容为:"+str);
scanner.close();
}
}
-
使用scanner.hasNextInt()和scanner.hasNextFloat()来判断是否还有输入的整数和小数数据,使用scanner.nextInt()和scanner.nextFloat()接收整数和小数
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
//创建一个Scanner对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
int i=0;
float f=0.0f;
System.out.println("使用nextIn方式接收:");
if (scanner.hasNextInt()){
i=scanner.nextInt();
System.out.println("输入整数为"+i);
}else{
System.out.println("输入数据不是整数");
}
scanner.close();
}
}
-
例子,输入m个double值,并计算和与平均值
import java.util.Scanner;
//输入m个数,并计算平均值
public class Demo3 {
public static void main(String[] args) {
//创建一个Scanner对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
//和
double sum=0;
//计算输入了多少个数字
int m=0;
while (scanner.hasNextDouble()){
double x=scanner.nextDouble();
m=m+1;
sum=sum+x;
}
System.out.println(m+"个数的和为"+sum);
System.out.println(m+"个数的平均值为"+sum/m);
scanner.close();
}
}
顺序结构
-
按照顺序一句一句执行
if选择结构
-
if单选泽结构
if(布尔表达式){
//布尔式为true将执行的语句
}
-
if双选择结构
if(布尔表达式){
//布尔式为true将执行的语句
}else{
//布尔式为false将执行的语句
}
-
if多选择结构
if(布尔表达式1){
//布尔式1为true将执行的语句
}else if(布尔表达式2){
//布尔式2为true将执行的语句
}else{
//以上布尔式均为false将执行的语句
}
import java.util.Scanner; public class IfDemo { public static void main(String[] args) { //输入考试成绩并分级 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩"); int score=scanner.nextInt(); 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{ System.out.println("E级"); } } }
-
嵌套的if结构
if(布尔表达式1){
//布尔式1为true将执行的语句
if(布尔表达式2){
//布尔式2为true将执行的语句
}
}
switch多选择语句
-
switch case语句判断一个变量与一系列值中某个值是否相等,每个值为一个分支
-
switch语句中的变量类型为
-
byte、short、int或者char
-
从Java SE7开始支持字符串String类型
-
-
语法
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;
default://可选
//语句
}
-
注意:如果没有break,会发生case穿透,即break后面的内容都会执行
public class IfDemo {
public static void main(String[] args) {
char grade='C';
switch(grade){
case 'A':
System.out.printIn("优秀");
break;
case 'B':
System.out.printIn("良好");
break;
case 'C':
System.out.printIn("及格");
break;
case 'D':
System.out.printIn("及格");
break;
default:
System.out.printIn("未知等级")
}
}
}
-
代码反编译
对于编译好的class文件可以通过IDEA反编译为java代码
-
找到class文件路径——file->project structure->complier out
-
将class文件复制到java文件目录下——右键src->openIn->explorer->找到java文件黏贴
-
循环结构
-
while循环
-
do……while循环
-
for循环
-
Java5后引入了一种主要用于数组的增强型for循环
-
while循环
while(布尔表达式){
//循环内容
}
-
do……while循环(循环体至少执行一次)
do{
//代码语句
}while(布尔表达式)
-
For循环
for(初始化;布尔表达式;更新){
//代码语句
}
-
for循环执行流程
-
执行初始化步骤(可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句)
-
然后检测布尔表达式
-
执行一次循环后,更新循环控制变量
-
再次检测布尔表达式
-
-
打印九九乘法表
-
public class Demo1 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
-
增强for循环
-
对于数组或集合的增强型for循环
- IDEA快捷键--输入iter按回车,IDEA自动生成for-each
-
语法
for(声明语句:表达式)
{
//代码句子
}
-
public class Demo1 {
public static void main(String[] args) {
int [] numbers={10,20,30,40,50};//定义一个数组
for(int x:numbers){
System.out.println(x);
}
}
}
-
break和continue
-
break强行退出循环
-
continue退出本次循环,继续进行下次循环
-
//打印三角形
public class Demo1 {
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();
}
}
}
本文来自博客园,作者:{Ray963},转载请注明原文链接:{https://www.cnblogs.com/ray93/}

浙公网安备 33010602011771号