Java学习笔记(3)-- 循环
程序员文章站
2022-04-16 07:51:01
顺序结构:程序中的语句自上而下逐行执行。System.out.println("hello 1");System.out.println("hello 2");System.out.println("hello 3");流程图组成:a.椭圆 --》开始或结束b.矩形 --》执行c.菱形 --》判断d.平行四边形 --》输入或输出e.直线 --》流程线画流程图的工具:1.Microsoft Office Visio2.Power Designer...分支结构:a.单路分支...
顺序结构:程序中的语句自上而下逐行执行。
System.out.println("hello 1");
System.out.println("hello 2");
System.out.println("hello 3");
流程图组成:
a.椭圆 --》开始或结束
b.矩形 --》执行
c.菱形 --》判断
d.平行四边形 --》输入或输出
e.直线 --》流程线
画流程图的工具:
1.Microsoft Office Visio
2.Power Designer
...
分支结构:
a.单路分支:if结构
语法:
语句 //1
if(expression){ //2
语句 //3
}
语句 //4
执行流程:
情况a. 1-->2(true)-->3-->4
情况b. 1-->2(flase)-->4
说明:
判断表达式expression的值是否为真,如果为真执行if结构中的语句,否则继续向下执行
示例:
输入一个数,判断这个数是否大于100,如果大于100打印输出该数大于100。
任务:
输入年份,判断该年份是否为闰年,如果为闰年打印输出年份为闰年。(10)
判断闰年的条件:
能被4整除且不能被100整除 或 能被400整除
int year = 2020;
if(year%4==0&&year%100!=0 || year%400==0){
//是闰年
}
b.双路分支:if-else结构
语法:
语句 //1
if(expression){ //2
语句 //3
}else{
语句 //4
}
语句 //5
执行流程:
情况a. 1-->2(true)-->3-->5
情况b. 1-->2(flase)-->4-->5
c.多路分支
1.多重if结构
语法:
语句 //1
if(expression1){ //2
语句1 //3
}else if(expression2){ //4
语句2 //5
}else if(expressionN){ //6
语句N //7
}else{
其它语句 //8
}
语句 //9
执行过程:
判断表达式1的值,如果表达式1的值为真,执行语句1;
如果表达式1的值为假,再判断表达式2的值,如果表达式2的值为真,执行语句2;
如果表达式1的值为假,如果表达式2的值为假,再判断表达式N的值,如果表达式N的值为真,执行语句N;
如果所有表达式的值为假,则执行else中的语句。
任务:
输入学员的成绩,打印等级。
成绩>=90 优秀
成绩>=80 良好
成绩>=70 中等
成绩>=60 及格
<60 加油吧!!
2.switch结构
语法:
switch(表达式){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
case 常量N:
语句N;
break;
default:
其它语句;
break;
}
执行过程:
先计算表达式的值,拿表达式的值和常量进行比较;
如果表达式的值等于常量1,则执行语句1;
如果表达式的值等于常量2,则执行语句2;
如果表达式的值等于常量N,则执行语句N;
如果表达式的值不等于常量值,则执行其它语句;
注:常量值是不能相同的;break语句不可省略;如果省略break会继续向下执行。
实例:
输入一个字母,判断该字母是元音字母还是辅音字母。
任务:输入年份和月份,打印输出该月份的天数。(15分钟)
Java中的循环结构:
什么是循环?
循环:重复执行相同操作或不同操作的过程。
循环的要素:
a.循环条件
b.循环操作
1.while循环
语法:
给变量赋初值 //1
while(循环条件){ //2
循环操作 //3
增量 //4
}
其它语句 //5
执行过程:
情况一:1--》2(true)-》3-》4
--》2(true)-》3-》4
....
--》2(false)--》5
情况二:1--》2(false)--》5
执行原理:先判断,后执行。
示例:
打印输出1~9
任务:打印输出1~100的累加和。(10分钟)
2.do-while循环
语法:
给变量赋初值 //1
do{
循环操作 //2
增量 //3
}while(循环条件); //4
其它语句 //5
执行过程:
情况1:1-->2-->3-->4(true)
-->2-->3-->4(true)
-->2-->3-->4(true)
...
-->2-->3-->4(false)-->5
情况2:1-->2-->3-->4(false)-->5
工作原理:
先执行,后判断;无论条件是否为真,循环操作至少执行一次。
示例:
打印输出1~9;
任务:打印输出1~100的累加和。(5分钟)
任务:打印如下菜单
-----------------------
欢迎使用员工管理系统
1.添加员工
2.修改员工
3.员工列表
4.删除员工
0.退出系统
-----------------------
请选择功能:1
你选择了添加员工信息
-----------------------
欢迎使用员工管理系统
1.添加员工
2.修改员工
3.员工列表
4.删除员工
0.退出系统
-----------------------
请选择功能:
3.for循环
语法:
for(表达式1;表达式2;表达式3){
语句
}
其它语句
注:
表达式1:代表给变量赋初值
表达式2:代表的是循环条件
表达式3:代表的是增量
for(给变量赋初值/*1*/;循环条件/*2*/;增量/*4*/){
语句/*3*/
}
其它语句 /*5*/
执行过程:
情况一:1--》2(true)-》3--》4
--》2(true)-》3--》4
。。。
--》2(false)-》5
情况二:1--》2(false)-》5
工作原理:先判断,后执行。 已知循环次数时使用for循环,for循环是使用最多的。
示例:
打印输出1~9;
注:
1。for循环三个表达式都可以省略,但中间的分号不可以省略
2。如果省略表达式1,相当于没有给循环变量赋初值,可以在for循环之前给变量赋初值。
3。如果省略表达式2,相当于没有循环条件,这时for循环的循环条件始终为真,必须在循环体内设法结束循环。
4。如果省略表达式3,相当于没有增量,可以在循环体内添加增量;
4.增强for循环
语法:
for(数据类型 元素 : 数组或集合){
语句
}
遍历集合或数组时使用。
任务:
输入年份和月份,显示该月份的日历。
年份:2020
月份:7
日历:
一 二 三 四 五 六 日
1 2 3 4 5
6 7 8
,,,,,,,,,,,,,,,,,,,,,,,,,,,
31
提示:1990年1月1日为 星期一
推荐步骤:
1。输入年份判断该年份是闰年还是平年
2。输入月份计算该月份的天数
3。计算输入的年份距1990年1月1日的总天数
4。计算输入的月份距1990年1月1日的总天数
5。计算输入的月份的第一天是星期几?
6。打印日历
源代碼:--------------------------------------------------------------------
import java.util.Scanner;
public class second{
public static void main(String[] args){
int year ;
int month;
int week ;
Scanner sc = new Scanner(System.in);
System.out.print("请输入年份:");
year = sc.nextInt();
System.out.print("请输入月份:");
month = sc.nextInt();
//计算总天数
int yyear ,yeardays = 0;
for (yyear = 1990 ; yyear < year; yyear++){
if (yyear % 4 == 0 && yyear % 100 != 0)
{
yeardays =yeardays + 366;
}
else{
yeardays =yeardays + 365;
}
}
//计算月数的天数
int mmonth,monthdays = 0;
for(mmonth = 1 ; mmonth < month ; mmonth++){
switch(mmonth){
case 2: if(year % 4 == 0 && year % 100 != 0 ){
monthdays += 29;
}
else{
monthdays += 28;
}
break;
case 4:
case 6:
case 9:
case 11: monthdays += 30;
break;
default: monthdays += 31;
break ;
}
}
//计算每个月的一号是星期几
int alldays;
alldays = yeardays + monthdays + 1;
week = alldays % 7;
//日历表格
System.out.println("一\t二\t三\t四\t五\t六\t日");
//输出第一行前面的空格
for (int i=1;i<=week;i++){
System.out.print("\t");
}
for (int i=1;i<=7-week;i++){
System.out.print(i+"\t");
}
System.out.print("\n");
switch(month){
case 2: if(year % 4 == 0 && year % 100 != 0 ){
month = 29;
}
else{
month = 28;
}
break;
case 4:
case 6:
case 9:
case 11: month = 30;
break;
default: month = 31;
break ;
}
for (int i = 8 - week; i <= month; i++) {
System.out.print(i + "\t");
//每七天换一行则当日期能整除7就换行
if ((i + week) % 7 == 0) {
System.out.print("\n");
}
}
}
}
本文地址:https://blog.csdn.net/weixin_43920711/article/details/107368411
上一篇: 南朝开国皇帝刘裕,在历史上有多勇猛?
下一篇: C++ 笔记