Skip to content

bug国要进行选美大赛,选出最美程序猿 评选最美程序猿的条件: 头发不能太多,最好谢顶,聪明绝顶; 看上去要成熟一些,最好20多岁看着像40岁; 黑眼圈是标配,不007的程序猿不是优秀的程序猿; ............

1 程序流程

尽管现实世界的问题是复杂的、千变万化的,但与之相对应的计算机算法流程只有三种结构。

它们可以解决几乎全部的问题,任何一种编程语言都具备这三种流程结构:

1)顺序结构

2)分支结构(选择结构)

3)循环结构

1.1 顺序结构

当没有任何有关流程控制的语句时,程序从上而下,一行一行地顺序执行

image.png

1.2 分支结构

若条件P为真,则执行A,否则执行B

image.png

1.3 循环结构

若条件P为真,则执行循环体代码,执行一次完毕后,再次判断条件P是否为真,若为真则执行循环体代码。然后重复上面的过程,直到P为假,退出循环

image.png

2 分支结构

根据一定的条件有选择地执行或跳过特定的语句。

简单来说,就是根据不同的情况做出不同的决定

2.1 if结构

基本语法:

java
if(表达式)  {
    语句块
}

流程图:

image.png

描述: 当表达式值为ture时,执行语句块A,否则跳过语句块A

语法上,语句块仅有一句代码时,可以省略{},但是一般不建议这么做。

2.2 if-else 结构

世界上最远的距离,是我在if里你在else里,虽然经常一起出现,但却永不结伴执行。

基本语法:

java
if(表达式)  {
    语句块A
} else {
    语句块B
}

流程图:

image.png

描述:表达式为true时,执行语句块A;表达式为false时,执行语句块B

2.3 if- else if - else结构

基本语法:

java
if(表达式1) {
    语句块1
} else if (表达式2) {
    语句块2
} else if (表达式3) {
    语句块3
}
……
else if (表达式n) {
    语句块n
} else {
    语句块n+1
}

注意: else if 可以有多个,也可以没有 else 可以有,可以没有

流程图:

image.png

2.4 分支结构嵌套

分支结构中还可以按照某些条件继续进行判断。

如果有多个条件同时参与判断,此时可以使用if嵌套来解决。

if嵌套通过外层语句和内层语句的协作,可以增强程序的灵活性

java
if(条件1) {
    if(条件2) {
        代码块1
    } else {
        代码块2
    }
} else {
    代码块3
}

流程图:

image.png

2.5 switch结构

基本语法:

java
switch(表达式) {
    case 值1:
        语句块1;
        break;
    case 值2:
        语句块2;
        break;
    ……
    case 值N:
        语句块N;
        break;

    [default:
        语句块;
        break;]
}

1)表达式的值必须是以下几种类型之一:

​ char,byte,short,int,enum,String(Jdk7之后);

​ 不能用boolean,long,float,double等其他类型

2)case子句中的值必须是常量值,不能是一个范围

3)所有case子句中的值不能重复,否则编译出错

4)default子句是可选的

5)break语句用于执行完一个case分支后跳出switch语句块;如果没有,引起case贯穿

2.6 if和switch比较

1)相同点

都可以用于分支判断

2)不同点

switch结构用于处理等值判断的情况

if结构用于判断连续区间的情况

附录

通过 Scanner 类来获取用户的输入

注意:无脑记就行!!!

导包:

写在class的前面

java
import java.util.Scanner;

Scanner的用法:

java

// 创建Scanner对象,从键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年龄:");
// 接收键盘输入的整数
int age = scanner.nextInt();

// 其他
scanner.nextByte();
scanner.nextShort();
scanner.nextInt();
scanner.nextLong();
scanner.nextFloat();
scanner.nextDouble();
scanner.nextBoolean();

// 接收键盘输入的字符串
scanner.next();
scanner.nextLine();

局部变量

方法或代码块("{}"括起来的语句)中定义的变量成为局部变量

局部变量只在局部范围内有效,它的作用范围从声明开始,直到包含它的代码块结束

局部变量必须声明并且赋值才可以使用

java
public static void main(String[] args) {
		
    // 局部变量,只在局部范围内有效
    // main方法中定义的局部变量,整个main方法中都可以使用
    int a = 100;
    int b = 20;

    if(a > b) {
        // 代码块中定义的局部变量只在该代码块内有效
        int max = a; // 语句1
        System.out.println(max);
    } else {
        int max = b; // 语句2
        System.out.println(max);
    }
    // 语句1 和语句2在不同的代码块中,变量名相同互不影响
}
java
public static void main(String[] args) {

    int a = 100;
    int b = 20;

    int max = 0; // 语句1

    if(a > b) {
        // int max = a; // 语句2
        max = a;
    } else {
        max = b;
    }
    System.out.println(max);
    // 语句1和语句2不能同时出现,否则报错
}