首页 > 其他分享 >流程控制语句结构

流程控制语句结构

时间:2024-08-02 11:16:55浏览次数:10  
标签:语句 控制 int 流程 System 循环 println out

Java三种流程控制语句简介
从结构化程序设计角度出发,一般使用顺序结构、分支结构、循环结构进行程序设计和流程控制。详细的使用方法如下。

顺序结构

​ 顺序结构是程序的基本结构代码会由上而下的进行执行,中途不会出现判断或跳转。

案例:

public class ProcessControl {
public static void main(String[] args) {
	System.out.println("早上八点起床吃了西红柿鸡蛋面");
	System.out.println("中午在公司进行了项目需求分析会议修缮的一些程序的BUG、吃了一份可乐鸡饭没有午休");
	System.out.println("晚上加班到很晚、也许这就是生活吧");
	System.out.println("回家想想自己的工资,看了看房价。睡意全无,又开始了mysql的优化学习");	
}
}

分支结构

​ 开篇之前先来一个不是笑话的笑话。

  【故事】老婆给当程序员的老公打电话:下班顺路买十个包子,如果看到卖西瓜的,买一个。当晚老公手捧一个包子进了家门。老婆怒道:你怎么只买一个包子?!老公甚恐,喃喃道:因为我真看到卖西瓜的了。

    分支结构是程序设计中即为常用的。主要用于判断和选择。在Java中使用if 条件语句、switch选择语句进行流程控制。

if 条件语句

if的使用

介绍:可以对程序需要执行的代码进行条件限制。满足条件则执行,不满足则不执行。
语法

if(条件表达式){
	//满足条件的执行语句
}

花括号中的内容,称为代码块,一个代码块会被当成一个整体来执行。
示例:

//如果年龄大于等于18输出海皮的语句 如果年龄小于18则输出回家学习吧!
	int age;

	//大于18
	age=19;
	
	if(age>=18) {
		System.out.println("快来愉快的玩耍吧!");	
	}
	//小于18
	 age = 17; 
	if(age<=18) {
		System.out.println("回家学习!");	
	}
if else的使用

​ 满足if里面的内容则执行if花括号内的语句。如果不满足则执行else花括号后面的内容。

语法:

if(条件表达式){
	//满足条件的执行语句
}else{
	//不满足条件执行
}

示例:

	//如果年龄大于等于18输出海皮的语句 如果年龄小于18则输出回家学习吧!
	int age=23;
	int age2=16;
	if(age>=18) {
		System.out.println("快来愉快的玩耍吧!");
	}else {
		System.out.println("回家学习吧!");
	}
	
	if(age2>=18) {
		System.out.println("快来愉快的玩耍吧!");
	}else {
		System.out.println("回家学习吧!");
	}
if else if的使用

​ 满足if里面的内容则执行if花括号内的语句。如果不满足继续判断else if内的条件满足则执行,不满足则继续向下判断,都不满足执行else花括号内的代码。
语法:

if(条件表达式){
	//满足条件1的 执行语句
}else if{
	//满足条件2的 执行语句
}else{
    //不满足以上条件的执行
}

示例:
需求:成绩判断器 90-100优秀 80-89 良好 70-79中等 60-69 及格 60以下 不及格

 //成绩判断器   90-100优秀 80-89 良好 70-79中等 60-69 及格  60以下 不及格
	if(score>=90) {
			System.out.println("优秀");			
		}else if(score>=80){
			System.out.println("良好");
		}else if(score>=70){
			System.out.println("中等");
		}else if (score>=60) {
			System.err.println("及格");
		}else {
			System.out.println("不及格");
		}
if条件语句的嵌套

​ if语句可以进行嵌套使用 即if语句内可与包含if语句
需求:百米赛跑案例 当选手赛跑成绩10秒内 可以进入总决赛 ,进入决赛后根据性别 分为男子组和女子组
示例:

	//百米赛跑案例   当选手赛跑成绩10秒内 可以进入总决赛 ,进入决赛后根据性别 分为男子组和女子组
	
	double grade = 9.0;
	int sex=0; //0代表男 1代表女
	
	if (grade < 10) {
		System.out.println("进入决赛");
		
		if(sex==0) {
			System.out.println("进入男子组");
		}else if(sex ==1 ) {
			System.out.println("进入女子组");
		}else {
			System.out.println("数据有误");
		}
		
	}
判断闰年

1.能被4整除,但不能被100整除,就是闰年;
2.能被400整除,也是闰年
方案一:

	int year =2000;
	
	if(year % 4 == 0) {
			if(year%100 != 0) {
				System.out.println(year+"是闰年");
			}else if(year % 400 ==0 ) {
				System.out.println(year+"是闰年");
			}else {
					System.out.println(year+"不是闰年");
				}
	}else if(year % 400 ==0 ) {
			System.out.println(year+"是闰年");
	}else {
			System.out.println(year+"不是闰年");
		}

方案二:

		int year =2000;
		
		if( (year%4==0 && year%100 !=0) || year%400==0 ) {
	       System.out.println(year+"是闰年");
		}else {
			System.out.println(year+"不是闰年");
		}

switch选择语句

语法:

switch (key) {
	case value:
	//执行语句
	break;
	
	default:
	//执行语句
		break;
}



    在上面的格式中,switch语句将key的值与每个case中的目标值进行匹配,如果相等,会执行对应case后的语句,如果没找到任何匹配的值,就会执行default后的语句。switch语句中的break关键字的作用是跳出switch语句。

注意事项:
一、key代表的数据类型 只能是 int short byte char String 枚举
二、switch 只能用于做等值判断
三、default 顺序问题 他可以放到最上面的位置 注意放置位置不同会影响我们代码输出
四、default 可以被省略
五、 if 一般用于一定范围内的条件判断 switch 能完成的案例 if都能完成 但是if能完成案例 switch不一定完成 常用分支结构if if

switch (需求值){
case 目标值1:
    执行语句1
    break;
    
case 目标值2:
    执行语句2
    break;

......

case 目标值n:
    执行语句n
    break;
    
default:
    执行语句n+1
    break;
}

示例:
需求:超市进行购物大酬宾 购物满199元即可参与抽奖活动 一等奖奖励空调 二等奖奖励电视 三等奖奖励电饭煲 四等奖奖励精品茶具 五等奖奖励抽纸一盒

	// switch选择语句
	
	//超市进行购物大酬宾 购物满199元即可参与抽奖活动 一等奖奖励空调 二等奖奖励电视 三等奖奖励电饭煲 四等奖奖励精品茶具 五等奖奖励抽纸一盒 

	double money = 208.6;//购物费用
	
	if(money>=199) {
		int grade = 4;//奖励等级 
		switch (grade){
			case 1:
				System.out.println("恭喜你获得空调");
				break;
			case 2:
				System.out.println("恭喜你获得电视");
				break;
			case 3:
				System.out.println("恭喜你获得电饭煲");
				break;
			case 4:
				System.out.println("恭喜你获得精品茶具");
				break;
			case 5:
				System.out.println("恭喜你获得抽纸");
				break;
			default:
				System.out.println("很遗憾您未中奖");
				break;
		}
		System.out.println("欢迎再次回顾!");
	}else {
		System.out.println("很抱歉,您购物未满199元不能参与此活动");
	}

循环结构

为什么使用循环?

​ 假设给予一个需求,输出一个HelloWorld我们可以很轻松的将其输出,如果我们需要输出十个HelloWorld、一万个、十万个乃至更多的HelloWorld时要如何完成呢?
​ 此时我们就需要使用循环来解决问题。

什么是循环?

​ 循环用于处理程序中具有规律性的重复操作。
​ 在Java中有三种循环语句
​ while
​ do-while
​ for

while循环

语法:

while(条件表达式){ 
	// 满足条件,则执行
    // 迭代语句(退出机制)
     }
    当条件表达式返回 true 的时候,则可以执行代码块中的内容,在循环体中要有迭代语句,才能让条件中的变量受到控制。
    执行顺序:先判断,再执行

示例:打印100次while

int i=0;//定义初始变量
	while(i<100) {		
		System.out.println("第"+(i+1)+"次"+"HelloWorld");
		i++;//自加1 操作
	}

注意事项:
◆while循环 条件满足后 执行{}里面语句
◆书写过程中第一次条件必须满足 如果不满足 循环直接不会执行
◆声明初始变量 在{}中 变量需要更新 要不然会发生死循环情况

do…while循环

语法:

do{
	//循环操作
}while(循环条件);
    先执行一次do内的循环操作。然后后条件表达式返回 true 的时候,则可以执行do代码块中的内容。
    执行顺序:先执行,后判断

示例:连续录入学生学号,输入“0”则系统退出

  //输入学生的学号  输入0时退出
	Scanner scanner =new Scanner(System.in);
	int id=0;
	do {
		System.out.println("请输入学号:");
		id = scanner.nextInt();
		System.out.println(id);
	}while(id!=0);

注意事项:
◆do while 循环特点 先执行 后循环操作
◆do while 无论while中条件是否满足 循环操作至少执行一次

for循环

在这里插入图片描述

语法:

for(初始化参数;条件判断;更新循环变量){
    //执行语句
}

详解:
for(表达式1;表达式2;表达式3){循环体结构}
表达式1:一般作为循环变量赋初始值;
表达式2:循环继续的条件,即能判断出真假的条件,一般为关系表达式;
表达式3:用于循环变量的的改变,可加,可减。。。

示例:
//打印100次HelloWorld

	for(int i=0;i<100;i++) {
		System.out.println("第"+(i+1)+"次HelloWorld!");
	}

//循环录入8们课程的成绩 并求其平均分

	Scanner scanner = new Scanner(System.in);
	double score=0;
	double sum = 0;
	for(int i=0;i<8;i++) {
		System.out.println("请输入第"+(i+1)+"门课程的成绩:");
		score = scanner.nextDouble();
		sum = sum+score;
	}
	System.out.println("课程平均成绩为:"+sum/8);

注意事项:
for循环的初始化必须含有;;
无条件判断会造成死循环
循环条件一次不满足就会跳出循环 不会继续下一次循环

break 和 continue

break(中断循环 跳出循环)

语法:

while(){
   if(){
   		break;//跳出循环
   }
}
    break通常在循环中与条件语句一起使用

示例:
随机输入10个以内的整数如果遇到0则输出“输入0跳出循环”

	//随机输入10个以内的整数如果遇到0则输出“输入0跳出循环”
	Scanner scanner = new Scanner(System.in); 
	int num = 0;
	int i;
	for ( i = 1; i <=10; i++) {
		System.out.println("请输入第"+i+"个数:");
		num = scanner.nextInt();
		if(num == 0) {
			System.out.println("输入0跳出循环");
			break;
		}
		
	}
	System.out.println("循环结束,你输入了"+i+"次");
continue(跳过一次循环 继续执行下一次循环)

语法:

while(){
   if(){
   		continue;//跳出本次循环
   }
}
    continue :只能用在循环里

示例:
求取1-100以内不包含10的和

	//求取1-100以内不包含10的和
	int sum = 0;	
	for(int i=1;i<=100;i++) {
		if(i==10) {
			continue; //跳出本次循环 本次循环内continue以下的语句不再
		}
		sum=sum+i;
	}
	System.out.println(sum);

循环嵌套

循环内可以继续嵌套循环
示例:

//使用0打印出一个5行5列的矩形
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print("0");				
			}
			System.out.println("0");	
		}
    往往嵌套三次以下 超过三次会导致代码可读性变差!

循环示例

示例一 、 打印1-100之间的偶数和它们的和
package com.qingsu.basis;

public class Loop {
public static void main(String[] args) {
	//打印1-100之间的偶数 和他们的和
	
	int i = 1;
	int sum = 0;
	while(i<101) {
		if(i%2==0) {
			System.out.println(i);
			sum = sum+i;
		}		
		i++;
	}
	System.out.println("1-100内的偶数和为"+sum);
	
}
}
示例二、 打印1-100以内的质数(基础版)

while实现

package com.qingsu.basis;

import java.util.Scanner;

public class Loop {
public static void main(String[] args) {		
	//打印输出1-100内的质数
	//质数(素数)仅可以被1和自身整除的数为质数
	
	int num = 2;
	 boolean flag = true;//用于保存是否为素数
	
	while (num<=100) {//外层循环 用于实现从2-100 1不是质数
		int num2 = 2;
		 while(num>num2) {//内层循环用于判断是不是质数
                if(num%num2 == 0) { 如果能被整除则表明不是质数 不能被整除则表明是质数
                    flag = false;
                	break;
                }
                num2++;
		 }
		 if(flag) {
			 System.out.println(num);
		 }
		 num++;
		 flag=true;
	}	 			
}
}

for实现

package com.qingsu.basis;

import java.util.Scanner;

public class Loop {
public static void main(String[] args) {		
	//打印输出1-100内的质数
	//质数(素数)仅可以被1和自身整除的数为质数
	boolean flag = true;//用于保存是否为素数
	for(int i=2;i<=100;i++) {//外层循环 用于实现从2-100 1不是质数	
		for(int j=2;j<i;j++) {//内层循环用于判断是不是质数
			if(i%j==0) {
				flag  = false;
				break;					
			}
		}
		if(flag) {
			System.out.println(i);				
		}
		flag = true;
	}	
 			
}
}
示例三、录入班级人数和学员成绩,计算班级学员的平均成绩
package com.qingsu.basis;

import java.util.Scanner;

public class Loop {
public static void main(String[] args) {		
	//录入班级人数和学员成绩,计算班级学员的平均成绩
	Scanner scanner = new Scanner(System.in);
	System.out.println("请输入班级人数:");
	int num = scanner.nextInt(); 
	int i = 0;
	double sum = 0;
	
	while(num>i) {
		System.out.println("请输入第"+(i+1)+"位同学的成绩:");
		double score = scanner.nextDouble();
		i++;
		sum = sum+score;					
	}
		System.out.println("平均成绩为:"+sum/num);
}
}
示例四、年增月增问题

​ 某景点2016年旅游人次位130万人,每年增长18%,请问按此增长速度,到哪一年旅游人次达到500万人?

package com.qingsu.basis;

import java.util.Scanner;

public class Loop {
public static void main(String[] args) {

//某景点2016年旅游人次位130万人,每年增长18%,请问按此增长速度,到哪一年旅游人次达到500万人?
	int year = 2016;
	double num = 1300000;
	
	while (5000000>=num) {
		num = num*1.18;
		year++;		
	}
	System.out.println("第"+year+"年后旅游人数将达到500万人,人数为"+(int)num);	
}
}
示例五、打印九九乘法表
package com.qingsu.basis;

import java.util.Scanner;

public class Loop {
public static void main(String[] args) {		
	//打印九九乘法表
	
	for(int i=1;i<=9;i++) {
		for(int j=1;j<=i;j++) {
			System.out.print(j+"*"+i+"="+i*j+"\t");
		}
		System.out.println();
	}		
}
}

标签:语句,控制,int,流程,System,循环,println,out
From: https://www.cnblogs.com/rehe/p/18338368

相关文章

  • 实在RPA助力中国烟草11省40余家企业,实现多业务流程自动化
    近年来,为深入贯彻行业数字化转型战略部署和发展新质生产力体制机制,诸多省市烟草公司及中烟公司大力推进烟草行业数字化转型,然而烟草行业在数字化转型过程中始终存在一个核心痛点,即数据整合的复杂性、系统间的兼容性问题,以及伴随的调用数据、处理数据的安全性问题。这就要求烟......
  • 远程控制设备没有屏幕怎么办?ToDesk扩展屏幕性能
    当你遇到要远程控制的电脑没有显示屏或屏幕无法打开,只有主机能够正常运行时,这时候该怎么办?小社长发现ToDesk远程控制软件的虚拟屏功能就能帮你解决此等难题,搭配扩展屏使用还能让你的工作效率更上一层楼!如何用虚拟屏来帮助没有屏幕的电脑进行远程控制?跟着小社长一起来科普了解一......
  • 网络编程基本流程介绍
    参照:恋恋风尘的官方博客讲解:C++asio网络编程笔记下载地址:gitee:笔记/c++/网络编程/asio网络编程基本流程网络编程的基本流程对于服务端是这样的服务端socket——创建socket对象。bind——绑定本机ip+port。listen——监听来电,若在监听到来电,则建立起连接。accept——......
  • SQL Server 将查询的结果生成insert语句
    思路参考https://www.cnblogs.com/LeiYang5237/p/8549621.html总结:将查询结果插入新表,然后生成脚本自己操作过程:1、数据库表TEST初始数据2、将包含abc的数据查询,并插入到新表TEST2中3、新表TEST2中的数据4、最后生成脚本......
  • Langchain——chatchat3.1版本docker部署流程Langchain-Chatchat
    Langchain——chatchat3.1版本docker部署流程Langchain-Chatchat1.项目地址#项目地址https://github.com/chatchat-space/Langchain-Chatchat#dockerhub地址https://hub.docker.com/r/chatimage/chatchat/tags2.docker部署参考官方文档#官方文档https://github.com/......
  • Java流程控制语句结构中的循环结构
    循环结构目录循环结构while循环do...while循环for循环如果您想要同样的操作执行多次,就需要使用循环结构。Java中有三种主要的循环结构:while循环do…while循环for循环while循环while是最基本的循环,它的结构为:while(布尔表达式){//循环内容}只要布尔表达式......
  • 循环语句:解锁编程世界的无限迭代
    引言循环,它不仅仅是简单的重复,更是高效、优雅的代名词。无论是遍历数组、处理文件、模拟复杂系统,还是优化算法性能,循环都是不可或缺的基石。接下来将带您深入循环的奥秘,揭示其背后的工作原理,以及如何在编程实践中灵活运用,让您的代码在迭代中绽放光彩。循环流程图循环结构对......
  • 在 Python 生成器中使用“with”语句管理资源
    今天,在编程时,我发现自己在生成器函数内管理资源(ssh连接),类似于以下内容:def_yield_fname(host_address,usr,pwd,datapath):withparamiko.SSHClient()asssh_client:ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh_client.......
  • 白盒测试基础与实践:Python示例及流程图设计
    文章目录前言一、白盒测试是什么?主要特点常用方法优点缺点二、白盒测试常用技术语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖三、程序流程图设计四、测试用例设计1.基本路径法2.语句覆盖3.判断覆盖4.条件覆盖5.判断/条件覆盖6.条件组合覆盖总结......
  • [Leetcode]SQL语句
    groupby182.查找重复的电子邮箱SQLSchemaPandasSchema表:Person+-------------+---------+|ColumnName|Type|+-------------+---------+|id|int||email|varchar|+-------------+---------+id是该表的主键(具有唯一值的列)。此......