欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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