循环结构

分类:for,while,do……while

(1)for语句

格式:

  • for(初始化表达式;条件表达式;循环后的操作表达式){
  • 循环体;
  • }

执行流程:

a.执行初始化语句

b.执行判断条件语句,看其返回值是true还是false

  • 如果是true,就继续执行
  • 如果是false,就结束循环

c.执行循环体语句

d.执行循环后的操作表达式

e.回到b继续

 //例子
//在控制台输出10次“helloworld”
for(int i=0;i<10; i++){
System.out.println("helloworld");
} //练习1,在控制台输出数据1-10
//练习2,在控制台输出数据10-1 for(int i=1;i<=10;i++){
System.out.println("i="+i);
} for(int i=10;i>=1;i--){
System.out.println("i="+i);
}

for语句的求和思想:

 //练习一:求出1-10之间数据之和

     int sum = 0;
for(int i=1;i<=10;i++){
sum = sum+i;
}
System.out.println("sum="+sum);
} //练习二:求出1-100之间偶数和 int sum = 0;
for(int i=1;i<=10;i++){
if(i%2==0){
sum = sum+i;
}
}
System.out.println("sum="+sum);
} //练习三:求出1-100之间奇数和 int sum = 0;
for(int i=1;i<=10;i++){
if(i%2!=0){
sum = sum+i;
}
}
System.out.println("sum="+sum);
}

练习:在控制台输出所有的水仙花数

 //在控制台输出所有的水仙花数
//所谓的水仙花数就是指一个三位数,其各位数字的立方和等于该数本身
//举例:153
//153=1*1*1+5*5*5+3*3*3=1+125+27=153 /*
第一步:100-999
第二步:获取每一个位数的值,百位,十位,个位
第三步:判断各个位上的立方和是否等于这个数,如果等于,则输出
*/ for(int i =100;i<=999;i++){ //获取100到999之间的数
int ge = 1%10; //123%10
int shi = 1/10%10; //12%10
int bai = 1/10/10%10; //1%10 if(ge*ge*ge+shi*shi*shi+bai*bai*bai){
System.out.println(i);
}
} //统计水仙花数一共有多少个 /*
第一步:需要有一个变量记录水仙花个数
第二步:获取到所有的3位数
第三步:判断是否满足水仙花数
第四步:如果满足条件,计数器就自增
*/ int count = 0;
for(int i =100;i<=999;i++){
int ge = 1%10;
int shi = 1/10%10;
int bai = 1/10/10%10; if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){
count++;
}
}
System.out.println(count);
}

while语句的基本格式和使用

基本格式:

  • while(判断条件语句){
  •   循环体语句;
  • }

完整格式:

  • 初始化语句;
  • while(判断条件语句){
  •   循环体语句;
  •   控制条件语句;
  • }
 //例子
//在控制台输出1-10
int x=1;
while(x<=10){
System.out.println("x="+x);
x++;
} //练习一:求和思想,求1-100之和
int sum=0;
int i=1;
while(i<=100){
sum+=i; //sum=sum+i;
i++; //让变量i自增
}
System.out.println("sum="+sum);
} //练习二:统计思想,统计水仙花个数
int count = 0; //计数器
int i =100;
while(i<=999){
int ge = i%10;
int shi = i/10%10;
int bai = i/10/10%10; if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){
count++;
}
i++;
}
System.out.println("count"+count);
}

do......while语句基本格式和使用

格式:

  • do{
  •   循环体语句;
  • }while(判断条件语句);

完整格式:

  • 初始化语句;
  • do{
  •   循环体语句;
  •   控制条件语句;
  • }while(判断条件语句);
 //例子
//在控制台输出数据1-10
int i = 1;
do{
System.out.println("i="+i);
i++;
}while(i<=10);

三种循环语句的区别:

  • do……while:至少执行一次循环体
  • 而for,while必须先判断条件是否成立,然后决定是否执行循环体
  • for语句执行后变量会被释放,不能再使用
  • while语句执行后,初始化变量还可以继续使用

两种简单的死循环结构:

(1)while(true){……}

(2)for(;;){……}

循环嵌套题目:

 1 //输出一个正三角形
2 /*
3 *
4 **
5 ***
6 ****
7 *****
8 */
9
10 for(int i =1;i<=5;i++){ //外循环决定行数
11 for(int j =1;j<=i;j++){ //内循环决定列数
12 System.out.println("*");
13 }
14 System.out.println(); //换行
15 }
1 //输入一个4行5列的图案
2 /*
3 *****
4 *****
5 *****
6 *****
7 */
8 //外循环控制行数,内循环控制列数
9 for(int i=1;i<=4;i++){ //外循环
10 for(int j=1;j<=5;j++){ //内循环
11 System.out.print("*");
12 }
13 System.out.println(); //换行
14 }
 //在控制台输出九九乘法表

 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();
}

控制跳转语句:

  • 1、break
  • 使用场景:只能在switch中和循环中使用,停止循环
  • 2、continue
  • 使用场景:只能在循环中
  • 3、return
  • 作用:返回,不是结束循环,而是结束方法

三者的区别:

  • return是结束方法
  • break是跳出循环
  • continue是终止本次循环,继续下次循环

控制跳转语句标号

 //例子

 outer:for(int i =0;i<=10;i++){
//outer就是标号,只要是合法的标识符即可
System.out.println("i="+i);
inner:for(int j=1;j<=10;j++){
System.out.println("j="+j);
break outer;
}
}
 //练习
//在控制台输出2次“java基础班”
//在控制台输出7次“java基础班”
//在控制台输出13次“java基础班” for(int x=1;x<=10;x++){
if(x%3==0){
//break; //输出2次
//continue; //输出7次
System.out.println("java基础班"); //输出13次
}
System.out.println("java基础班");
}

Java的方法

概述:完成特定功能的代码块,提高代码的复用性

格式:

  • 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2……){
  •     方法体语句;
  •     return 返回值;
  • }

参数:

  • 实际参数:就是实际参与运算的
  • 形式参数:就是方法定义上的,用于接收实际参数的
 //例子
//用方法求两个整数的和 public static void main(String[] args){
int sum = add(10,20); //实际参数
} public static int add(int a,int b){ //形式参数
int sum = a+b;
return sum;
}

方法的调用:

(1)单独调用,没有意义,例:add(10,20);

(2)输出调用,不够好,例:System.out.println(add(10,20));

(3)赋值调用,推荐

 //练习1:键盘录入两个数据,返回两个数中的较大值
//练习2:判断两个整数是否相等 boolean public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int x= sc.nextInt();
System.out.println("请输入第二个整数:");
int y = sc.nextInt(); int max = getMax(x,y);
System.out.println(max); boolean b = isEquals(x,y);
System.out.println(b); } /*
返回两个整数的较大值
1、明确返回值类型
2、明确参数列表 int a,int b
*/ public static int getMax(int a,int b){
return a>b?a:b;
} /*
判断两个整数是否相等
1、明确返回值类型
2、明确参数列表 int a,int b
*/ public static boolean isEquals(int a,int b){ isEquals 是否相等
return a==b;
}
 //在控制台输出矩形星形

 public static void main(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数");
int row = sc.nextInt();
System.out.printin("请输入列数");
int column = sc.nextInt(); print(row,column);
} /*
1、明确返回值类型,经分析没有具体的返回值类型,void
2、明确参数列表int a,int b
*/ public static void print(int a,int b){
for(int i = 1;i<=a;i++){ //行数
for(int j=0;j<=i;j++){ //列数
System.out.print("*");
}
System.out.println();
}
}

方法的练习:

 //打印乘法表

 public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int num = sc.nextInt();
} /*
1、返回值类型void
2、参数列表,int a
*/ public static void print(int a){
for(int i=1;i<=a;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}

方法重载(overload):方法名相同,参数列表不同,与返回值类型无关

重载的分类:

  • 1、参数个数不同
  • 2、参数类型不同(顺序不同)
 //方法的重载练习
//比较两个数据是否相等,参数类型分别为两个int类型,两个double类型,并在main方法中进行测试 boolean b1 = isEquals(10,10);
System.out.println(b1); boolean b2 = isEquals(10.5,10.6);
System.out.println(b2); /*
1、返回值类型boolean
2、参数列表int a,int b
*/ public static boolean isEquals(int a,int b){
return a==b;
} /*
1、返回值类型boolean
2、参数列表double a,double b
*/ public static boolean isEquals(double a,double b){
return a==b;
}

循环语句(for,while,do……while),方法概述的更多相关文章

  1. 循环语句for基本概述

    循环语句for基本概述 01. for循环基础语法 for 变量名 in [ 取值列表 ]do 循环体done 02. for循环基本使用示例 #取值列表有多种取值方式,可以直接读取in后面的值,默认 ...

  2. 【Java基础】【04循环语句&方法】

    04.01_Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for,while,do...while B:循环结构for语句的格式: for(初始化表达式;条件表达式; ...

  3. 使用Spring Security3的四种方法概述

    使用Spring Security3的四种方法概述 那么在Spring Security3的使用中,有4种方法: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中,已经实现过, ...

  4. Go 循环语句

    Go 循环语句 一.概述 在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句. 循环程序的流程图: Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 ...

  5. python之最强王者(3)——变量,条件、循环语句

    1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的 ...

  6. java基础3_循环语句,数组

    java中的循环: Java中提供了3中循环结构:  while  do-while  for ① 循环结构的作用? 可以不断重复执行循环结构中的代码: ② 上面的3个循环结构功能都是一样的,只是结构 ...

  7. 详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

  8. iOS -Swift 3.0 -for(循环语句用法)

    // // ViewController.swift // Swift-循环语句 // // Created by luorende on 16/12/08. // Copyright © 2016年 ...

  9. javascript语句——条件语句、循环语句和跳转语句

    × 目录 [1]条件语句 [2]循环语句 [3]跳转语句 前面的话 默认情况下,javascript解释器依照语句的编写顺序依次执行.而javascript中的很多语句可以改变语句的默认执行顺序.本文 ...

随机推荐

  1. 基于SVM的鸢尾花数据集分类实现[使用Matlab]

    iris数据集的中文名是安德森鸢尾花卉数据集,英文全称是Anderson’s Iris data set.iris包含150个样本,对应数据集的每行数据.每行数据包含每个样本的四个特征和样本的类别信息 ...

  2. 监控elssticSearch健康状态

    [4ajr@elk1 scripts]$ curl 172.30.210.175:9200/_cat/health [4ajr@elk1 scripts]$ cat check_es_healthy. ...

  3. Oracle 查询表对应的索引

    select col.table_owner "table_owner", idx.table_name "table_name", col.index_own ...

  4. Mantis中文网

    Mantis中文网 | Mantis安装.Mantis使用.Mantis中文http://www.mantis.org.cn/ Mantis Bug Tracker | Demohttp://www. ...

  5. java异常处理规范

    异常处理的优势[存在意义]:异常检测者有检测出异常的能力,但不知道在出现该异常的情况下应该怎么处理.故库方法一般会抛出异常给调用者来处理.所以总结而言,异常处理的优势就是,将处理错误(调用者处理)从检 ...

  6. SpringBoot 统一时区的方案

    系统采用多时区设计的时候,往往我们需要统一时区,需要统一的地方如下: 服务器(Tomcat服务) 数据库(JPA + Hibernate) 前端数据(前端采用Vuejs) 思路为:将数据库和服务器的时 ...

  7. redis优化

    一.配置文件优化 bind 127.0.0.1 //允许连接的ip,如果就本机连接最后127.0.0.1 protected-mode yes //是否开启保护模式.默认开启,如果没有设置bind项的 ...

  8. JS 中的原型 -- prototype、__proto__ 以及原型链

    原文: 1.深入理解javascript原型和闭包——prototype原型 2.三张图搞懂JavaScript的原型对象与原型链 打开浏览器控制台,任意定义一个对象,打印出来后,会发现有最后一定有一 ...

  9. ERROR 1045 (28000): Access denied for user 'xxx'@'localhost' (using password: YES)【奇葩的bug】

    #  Bug描述 今天周末,在家里学点新技术,虽然公司分配的任务没有完成(滑稽滑稽) 我先创建了一个mysql数据库,用root用户创建一个新用户,毕竟项目中使用root是非常危险的,尤其是我这样的实 ...

  10. Insert Into select 与 Select Into 哪个更快?

    在平常数据库操作的时候,我们有时候会遇到表之间数据复制的情况,可能会用到INSERT INTO SELECT 或者 SELECT INTO : 那么二者语法上有什么区别?性能上又如何呢? 围绕着这两个 ...