Java流程控制

Java流程控制

1.用户交互的Scanner

  • java.util.Scanner

  • 基本语法:

    Scanner s = new Scanner(System.in);
    
  • 通过Scanner类的next()nextLine()方法来获取输入的字符串,在读取前,我们一般需要使用**hasNext()hasNextLine()**判断是否还有输入的数据。

    //用**next()**接收

    package com.kuang.scanner;
    import java.util.Scanner;
    public class Demo1{
        public static void main(String[] args){
            //创建一个扫描器对象,用于接收键盘数据
            Scanner scanner = new Scanner(System.in);
            
            //用next方式接收对象
            if(scanner.hasNext()){//如果下一个还有输入
                String str=scanner.next();//就将输入的String赋值给str
                System.out.println(str);
            }
            //凡是属于IO流的类如果不关闭会一直占用资源,要养成良好的习惯
            scanner.close();
            
        }
    }
    
    
    //输入hello world 
    //输出hello
    

    //用**nextLine()**接收

    package com.kuang.scanner;
    import java.util.Scanner;
    public class Demo1{
        public static void main(String[] args){
            //创建一个扫描器对象,用于接收键盘数据
            Scanner scanner = new Scanner(System.in);
            
            //用nextLine方式接收对象
            if(scanner.hasNextLine()){//如果下一个还有输入
                String str=scanner.nextLine();//就将输入的String赋值给str
                System.out.println(str);
            }
            
            //也可以不用if语句判断是否还有输入,直接可以这样写
            /*
            Scanner sc = new Scanner(System.in);
            
            System.out.println("请输入数据:");
            
            String str = sc.nextLine();
            
            sc.close();
          
            */
            
            
            //凡是属于IO流的类如果不关闭会一直占用资源,要养成良好的习惯
            scanner.close();
            
        }
    }
    
    
    //输入hello world 
    //输出hello world
    

    next:

    1. 一定要读取有效字符后才可以结束输入
    2. 对输入的有效字符之前遇到的空白,next()方法会自动去除
    3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
    4. next()不能得到带有空格的字符串

    nextLine():

    1. 以Enter作为结束符,nextLine()方法返回的是输入回车前的所有字符
    2. 可以获取空白

    接收其他不同的类型

    接收Int
    if(scanner.hasNextInt()){//判断输入下一个是否是整数
        int i = scanner.nextInt();
    }
    
    while(scanner.hasNextInt()){//一直输入数字,直到输入的数字不是int类型
        int i = scanner.nextInt();
    }
    
    接收Float
    if(scanner.hasNextFloat()){
        flaot f = scanner.nextFloat();
    
    接收其他类型
    nextDouble
    nextByte
    nextShort
    …………
    

2.顺序结构

  • 从上到下依次执行,不多说

3.选择结构

  • if单选择结构
if( ){
    //true
}
  • if双选择结构
if(){
    //true
}else{
    //false
}
  • if多选择结构
if(){
    //true
}else if(){
    //true
}else if(){
    //true
}else{
    //false
}
  • 嵌套的if结构
if(){
    //1 true
    if(){
        //2 true
    }
}
  • switch多选择结构
switch(expression){
    case value1 :
        break;
    case value2 :
        break;
    case value3 :
        break;
    default ://上述条件都不成立,就用default
        
}
//如果break掉了,就会发生case穿透现象,所有case都会执行

switch语句中的expression可以是:

  • byte , short , int ,char。
  • 从Java SE 7 开始, switch 支持字符串String类型
  • 同时case标签必须为字符串常量或者字面量

switch的反编译(源码):详见狂神说java

//反编译 java---->class(字节码文件)
找到项目结构
找到项目输出之后的路径
打开路径
找到class文件
然后在IDEA里面打开show in explore//打开文件夹
然后将class拷入打开的文件夹,打开就可以看源码

4.循环结构

  • while循环
while(true/false){
    
}
//先判断再执行
  • do…while循环
do{
    
}while();
//先执行,再判断

如果不满足条件,也让程序至少执行一次

  • for循环
for(初始化;布尔表达式;更新){
    
}
//例子
for(int i=0;i<=100;i++){
    
}

//IDEA里面有直接生成for循环代码的语句
输入:5.for
生成:for(int i=0;i<5;i++){//生成循环5次的代码
    
}
  • !!!Java5 中引入了一种朱亚鹏用于数组的增强型for循环
for(声明语句 : 表达式){
    //代码句子
}
//主要用于遍历数组和集合
//声明语句: 声明一个新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块内,其值与此时数组元素的值相等
//表达式: 表达式是要访问的数组名,或者是返回值为数组的方法。
public class test{
    public static void main(String[] args){
        int[] num={1,2,3,4,5};//定义一个数组
        for(int x:num){
            System.out.println(x);
        }
    } 
}

/*
输出:
1
2
3 
4
5
*/

5.break 和 continue

break

用于强制退出循环,不执行剩下的语句

continue

用于终止某次循环,跳过余下的语句,执行下一次循环

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值