程序的逻辑结构

目录

顺序结构

分支结构

if语句

switch语句

循环结构

while循环

break关键字

continue关键字

for循环

do-while循环

输入输出

输出到控制台

从键盘输入

使用 Scanner 读取字符串/整数/浮点数

使用 Scanner 循环读取 N 个数字


顺序结构

 在单线程场景下,按照代码顺序一行行执行

        System.out.println("a");
        System.out.println("b");
        System.out.println("c");
        System.out.println("d");
//输出 a
       b
       c
       d

分支结构

if语句

基本语法格式

//第一种情况
if(布尔表达式){
    //条件满足时执行代码
}

//第二种情况
if(布尔表达式){
    //条件满足时执行代码
}else{
    //条件不满足时执行代码
}

//第三种情况-多分支
if(布尔表达式){
    //条件满足时执行代码
}else if(布尔表达式){
    //条件满足时执行代码
}else{
    //条件都不满足时执行代码
}

注意1:悬垂else问题

int x = 10;
int y = 10;
if (x == 10) 
 if (y == 10)
 System.out.println("aaa");
else
 System.out.println("bbb");

 if / else 语句中可以不加大括号 ,但是也可以写语句(只能写一条语句)

此时 else 是和最接近的 if 匹配(不建议)

 注意2:;问题

int x = 20;
if (x == 10); {
    System.out.println("abc");
}
// 运行结果abc

多写了一个 分号,导致分号成为了 if 语句的语句体, { } 中的代码已经成为了和一个 if 无关的代码块 

switch语句

switch 中的值只能是 整型|字符|枚举| 字符串
基本语法格式
switch(整数|字符|枚举|字符串){
 case 内容1 : {
 内容满足时执行语句;
 [break;]
 }
 case 内容2 : {
 内容满足时执行语句;
 [break;]
 }
 ...
 default:{
 内容都不满足时执行语句;
 [break;]
 } 
}

  • 根据 switch 中值的不同会执行对应的 case 语句, 遇到 break 就会结束该 case 语句,没有break就会一直向下执行
  • 如果 switch 中的值没有匹配的 case,就会执行 default 中的语句
  • switch 不能表达复杂的条件

循环结构

while循环

基本语法格式

while(循环条件){ 
循环语句; 
}

 注意

  •   if 类似,while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句, 建议还是加上 { }
  • if 类似, while 后面的 { 建议和 while 写在同一行
  •   if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行

break关键字

break 的功能是让循环提前结束
执行到 break 就会让循环结束

continue关键字

continue 的功能是跳过这次循环, 立即进入下次循环
执行到 continue 语句的时候 ,  就会立刻进入下次循环 ( 判定循环条件 ) 从而不会执行到下方的打印语句

for循环

 基本语法格式

for(表达式1;表达式2;表达式3){ 
循环体; 
}

//表达式1: 用于初始化循环变量
//表达式2: 循环条件
//表达式3: 更新循环变量
注意 ( while 循环类似 )
  • if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
  •   if 类似, for 后面的 { 建议和 while 写在同一行.
  •   if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行

do-while循环

基本语法格式

do{ 
循环语句; 
}while(循环条件); 
先执行循环语句, 再判定循环条件

输入输出

输出到控制台

System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出

从键盘输入

使用 Scanner 读取字符串/整数/浮点数

import java.util.Scanner; // 需要导入 util 包
Scanner sc = new Scanner(System.in); 
System.out.println("请输入你的姓名:"); 
String name = sc.nextLine(); 
System.out.println("请输入你的年龄:"); 
int age = sc.nextInt(); 
System.out.println("你的信息如下:"); 
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"); 
sc.close();

使用 Scanner 循环读取 N 个数字

Scanner sc = new Scanner(System.in); 
double sum = 0.0; 
int num = 0; 
//读取多个double类型的数据
while (sc.hasNextDouble()) { 
 double tmp = sc.nextDouble(); 
 sum += tmp; 
 num++; 
}
System.out.println("sum = " + sum); 
System.out.println("avg = " + sum / num); 
sc.close();
//输出
请输入数字:
16
56
89.9
^D
sum = 161.9
avg = 53.96666666666667

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习java的张三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值