当前位置: 移动技术网 > IT编程>开发语言>Java > Java学习笔记(3)-- 循环

Java学习笔记(3)-- 循环

2020年07月17日  | 移动技术网IT编程  | 我要评论
顺序结构:程序中的语句自上而下逐行执行。
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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网