JAVA流程控制
用户交互Scanner
Scanner对象
实现程序和人的交互,获取用户输入
public class Demo{
public static void main(String[] args){
//接受数据
Scanner scanner=new Scanner(System.in);
System.out.print("使用next接收:");
if(scanner.hasNext()){//判断是否有输入的数据 或用hasNextLine()
String str=scanner.next();//nextLine()
System.out.println("输出的内容:"+str);
}
scanner.close();//I/O流用完关闭
}
}
next():
- 一定读到有效字符才结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输出有效字符后,将其后面的空白作为分隔符或结束符
- next()不能得到带有空格的字符串
nextLine():
-
以Enter为结束符,也就是说,nextLine()返回输入回车前的所有字符
-
可以获得空白
public class Demo{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); //键盘接收数据 int i=0; float f=0.0f; System.out.println("请输入整数:"); if(scanner.hasNextLine()){ i=scanner.nextInt(); System.out.println("整数数据"+i); }else{ System.out.println("输入的不是整数"); } scanner.close(); } }
顺序结构
java的基本结构,若干个依次执行,自上而下
选择结构
if单选择结构
if(s.equals("字符串")){//布尔表达式 ,equals(“”)判断字符串是否相等
//布尔表达式为ture执行
}
if双选择结构
if(布尔表达式){
//布尔表达式为ture执行
}else{
//布尔表达式为false执行
}
if多选择结构
if(布尔表达式1){
}else if(布尔表达式1){
//如果表达式1结果为tru'e执行
}else if(布尔表达式2){
//如果表达式2结果为true执行
}else if(布尔表达式3){
//如果表达式3结果为true执行
}else{
//以上都不为true执行
}
if语句中最多有一个else,在所有else if后
有一个else if为ture,其他else if以及else都将跳过
嵌套的if结构
在if…else中嵌套if…else
switch多选择结构
switch(){
case value;//case必须为字符串常量或字面量
//语句1
break;//停止
case value;
//语句2
break;
default:
//语句3
}
没有break,case穿透现象
反编译方法
循环结构
while循环
先判断后执行
while(布尔表达式){
//循环内容
}
do…while循环
do while 先执行后判断,至少执行一次
do{
//循坏内容
}while(布尔表达式);
for循环
for(初始化;布尔表达式;更新迭代){
//代码语块
}
快捷键100.for(执行100次)
最先执行初始化值,可以声明一种类型,初始化一个或多个循环控制变量,也可以为空
检测布尔表达式,为true被执行
执行一次循环后,更新循环控制变量
增强型for循环
for(声明语句:表达式){
//代码语句
}
数组遍历
break&continue
break用于强制退出循环,不执行循环中的剩余语句
continue用于终止某次循环,跳过循环体未执行语句,接着进行下一次是否执行循环判断
练习
打印三角形
public class Demo{
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(" ");
}
}
}