程序的逻辑结构

程序的逻辑结构,第1张

程序的逻辑结构

目录

顺序结构

分支结构

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5719668.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存