流程控制+Java方法(含义→调用)

流程控制

用户交互Scanner

java.util.Scanner是Java5的新特征,运用Scanner类来获取用户输入

Scanner s = new Scanner(System.in);

输入字符串

Scanner类的next()和nextLine()获取输入的字符串

读取前一般需要用hasNext()和·hasNextLine()判断是否还有输入数据

Scanner s = new Scanner(System.in);

//判断用户有没有输入字符串
if(scanner.hasNext()){
    //next()方法接收
    String str = scanner.next();
    System.out.println("输出的内容"+str);
}

//IO流的类不关闭就会一直占用资源
scanner.close();

next()

1、一定要读取到有效字符后才可以结束输入

2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉

3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

4、next() 不能得到带有空格的字符串.

nextLine()

1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符

2、可以获得空白

输入数据

Scanner s = new Scanner(System.in);

//从键盘接收数据
int i = 0;//小数同理

if(scanner.hasNextInt()){
    i = scanner.nextInt();
    System.out.println("输出的数据"+i);
}else{
    System.out.println("输入的不是整数!")
}

scanner.close();

顺序结构

顺序结构是最简单的算法结构,从上到下进行

选择结构

if单选择结构

if(布尔表达式){
    //如果为true将执行的语句
}

if双选择结构

if(布尔表达式){
    //如果为true将执行的语句
}else{
    //如果为false将执行的语句
}

if多选择结构

if(布尔表达式 1){
    //如果为1的值将执行的语句
}else if(布尔表达式 2){
    //如果为2的值将执行的语句
}else if(布尔表达式 3){
    //如果为3的值将执行的语句
}else{
    //如果以上都不满足将执行的语句
}

嵌套的if结构

if(布尔表达式 1){
    //如果为1的值将执行的语句
    if(布尔表达式 2){
    //如果为2的值将执行的语句
    }
}

如寻找一个数,在1-100之间

二分法

switch多选择结构

switch case 语句判断某个变量与一系列值中某个值是否相等,每个值为一个分支

switch(expression){
    case value:
        //语句
        break;//可选,用break来防止case穿透
    case value:
        //语句
        break;//可选
    //你可以有任意数量的case语句
    default://可选
        //语句 
}

switch语句中的变量类型可以是

  • switch 语句中的变量类型可以是:byte, short、int 或者 char

  • 从jdk7开始,switch 支持字符串 String 类型

  • 同时 case 标签必须为字符串常量或字面量。

反编译,可以用idea看生成后的源码

循环结构

while循环

do...while循环

for循环

在Java5中引入主要用于数组的增强型for循环

while循环

while(布尔表达式){
    //循环内容
}

只要表达式为true,循环就会一直执行下去

大多数情况让循环停下,需要一个让表达式失效的方式停止;少部分情况需要循环一直执行,比如服务器的请求响应监听等

循环条件一直为true则会造成无限循环(死循环),正常时应该避免

do...while循环

不满足while语句的条件,则不能进入循环。就算不满足也至少执行一次

do{
    //代码语句
}while(布尔表达式);

while是先判断后执行,do...while是先执行后判断

for循环

支持迭代的一种通用结构,是最有效最灵活的循环结构

循环次数在执行前确定

for(初始化:可为空语句;布尔表达式;更新){
    //代码结构
}
  • 输出九九乘法表

  • 增强for循环

java5引入用于数组或集合的增强型for循环

for(声明语句 : 表达式){
    //代码语言
}

int[] numbers = {10,20,30,40,50};
//遍历数组的元素
for(int x:numbers){
    System.out.printin(x);
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:需要访问的数组名或返回值为数组的方法

break continue

break:在任何循环语句的主体部分,用于强行跳出循环,不执行循环中剩下的语句(可用在switch语句中)

continue:在循环语句体中,用与中止某次循环。跳过循环体中未执行的,接着进行下一次是否循环判定(可用于跳过某次)

goto关键字(不用掌握:

是Java中保留字,但在语言中没有正式使用。但有类似的,如带标签的break和continue

标签:标识符后有冒号,如label:

对于Java来说唯一用到标签的位置在循环语句前,用于嵌套另一个循环

Java方法

何谓方法

Java方法是语句的集合,在一起执行一个功能

  • 解决一类问题的步骤的有序组合
  • 方法包含于类或对象中
  • 方法在程序中被创建,其他地方被引用

设计原则:方法是实现某个功能的语句块的集合,设计师要保持方法的原子性。即一个方法只完成一个功能

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体    
    ...
    return 返回值;//存在返回值时
}

方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

返回值类型:方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下关键字void

方法名:是方法的实际名称。方法名和参数表共同构成方法签名

参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数

  • 形式参数:方法被调用时用于接收外界输入的数据
  • 实参:方法调用时实际传给方法的数据

方法体:方法体包含具体的语句,定义方法的功能。

方法的调用

对象名.方法名(实参列表)

Java是值传递

posted @ 2025-08-12 21:21  lu璐  阅读(16)  评论(0)    收藏  举报