2.Java语言基础——流程控制语句与方法
2.Java语言基础——流程控制语句与方法
一、流程控制语句
A:什么是流程控制语句在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能
B:流程控制语句的分类顺序结构选择结构循环结构
1.顺序结构
A:顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行程序中大多数的代码都是这样执行的总的来说:写在前面的先执行,写在后面的后执行
B:执行流程:从上往下,依次执行
2.选择结构
A:选择结构的分类if语句switch语句
B:if语句有几种格式格式1格式2格式3
选择结构if语句格式1:
A:if语句的格式1if(比较表达式或者是boolean类型的值) {语句体;}
B:执行流程:先计算比较表达式的值,看其返回值是true还是false。如果是true,就执行语句体;如果是false,就不执行语句体;
选择结构if语句格式2:
A:if语句的格式2if(比较表达式) {语句体1;}else {语句体2;}注意事项:else后面是没有比较表达式的,只有if后面有。B:执行流程:首先计算比较表达式的值,看其返回值是true还是false。如果是true,就执行语句体1;如果是false,就执行语句体2;
选择结构if语句格式3:
A:if语句的格式3:if(比较表达式1) {语句体1;}else if(比较表达式2) {语句体2;}else if(比较表达式3) {语句体3;}...else {语句体n+1;}
B:执行流程:首先计算比较表达式1看其返回值是true还是false,如果是true,就执行语句体1,if语句结束。如果是false,接着计算比较表达式2看其返回值是true还是false,如果是true,就执行语句体2,if语句结束。如果是false,接着计算比较表达式3看其返回值是true还是false,...如果都是false,就执行语句体n+1。注意事项: 当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略
package org.westos.java;public class MyDemo {public static void main(String[] args) {int x=10;int y=20;int z=30;int max;if(x>y){if(x>z){max=x;}else{max=z;}}else{if(y>z){max=y;}else{max=z;}}System.out.println(max);}
}
选择结构switch语句的格式:
A:switch语句的格式switch(表达式){case 值1:语句体1;break;case 值2:语句体2;break;case 值3:语句体3;break;....default: 语句体n+1;break;}
B:switch语句的格式解释(1):switch表示这是switch语句表达式的取值:byte,short,int,charJDK5以后可以是枚举(什么是枚举,以后再讲)JDK7以后可以是String(2):case后面跟的是要和表达式进行比较的值(3):语句体部分可以是一条或多条语句(4):break表示中断,结束的意思,可以结束switch语句(5):default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似选择结构switch语句的注意事项:a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的值b:default可以省略吗?可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。c:break可以省略吗?可以省略,但是结果可能不是我们想要的。会出现一个现象:case穿透。int x = 2;int y = 3;switch(x){default:y++;case 3:y++;case 4:y++;}System.out.println("y="+y); //输出 y=6最终我们建议不要省略d:default一定要在最后吗?不是,可以在任意位置。但是建议在最后。e:switch语句的结束条件a:遇到break就结束了b:执行到末尾就结束了
3.循环结构
A:什么是循环结构循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环
B:循环结构的分类for循环while循环while语句do...while语句
循环结构for语句的格式:
A:循环结构for语句的格式:for(初始化表达式语句;判断条件语句;控制条件语句) {循环体语句;}
B:执行流程:a:执行初始化表达式语句b:执行判断条件语句,看其返回值是true还是false如果是true,就继续执行如果是false,就结束循环c:执行循环体语句;d:执行控制条件语句e:回到B继续。
C: 注意事项:初始化表达式语句只执行一次
package org.westos.java;/*A:案例演示需求:请在控制台输出数据1-10需求:请在控制台输出数据10-1*/
public class MyDemo {public static void main(String[] args) {for (int i = 1; i <= 10; i++) {System.out.println(i);}for (int i = 10; i >= 1; i--) {System.out.println(i);}for (int i = 1; i <= 10; i++) {System.out.println(11-i);}}
}
package org.westos.java;/*
A:案例演示: 需求:求出1-10之间数据之和B:学生练需求:求出1-100之间偶数和需求:求出1-100之间奇数和
*/public class MyDemo {public static void main(String[] args) {int sum1=0;int sum2=0;int sum3=0;for (int i = 1; i <= 10; i++) {sum1=sum1+i;}System.out.println("1-10的和:"+sum1);for (int i = 1; i <= 100; i++) {if(i%2==0){sum2+=i;}else{sum3+=i;}}System.out.println("1-100偶数和:"+ sum2);System.out.println("1-100奇数和:"+ sum3);}
}
package org.westos.java;/*
A:案例演示需求:在控制台输出所有的”水仙花数”所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。举例:153就是一个水仙花数。153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
B:案例演示: 需求:统计”水仙花数”共有多少个
*/public class MyDemo {public static void main(String[] args) {int n=0;for (int i = 100; i <= 999; i++) {int ge=i/1%10;int shi=i/10%10;int bai=i/100%10;if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){System.out.println(i);n+=1;}}System.out.println(n);}
}
循环结构while语句的格式:
A:while循环的基本格式:while(判断条件语句) {循环体语句;}完整格式:初始化条件语句;while(判断条件语句) {循环体语句;控制条件语句;}
B:执行流程:a:执行初始化条件语句;b:执行判断条件语句,看其返回值是true还是false如果是true,就继续执行如果是false,就结束循环c:执行循环体语句;d:执行控制条件语句e:回到b继续.
package org.westos.java;/*需求:在控制台输出10次"helloworld"需求:请在控制台输出数据1-10
*/public class MyDemo {public static void main(String[] args) {int i=1;while (i<=10){System.out.println(i+"hello world");i++;}int a=1;while (a<=10){System.out.println(a);a++;}}
}
package org.westos.java;/*
A:求和思想: 求1-100之和
B:统计思想: 统计”水仙花数”共有多少个
*/public class MyDemo {public static void main(String[] args) {int i=1;int s=0;while (i<=100){s+=i;i++;}System.out.println(s);int j=100;int n=0;while(j<=999){int ge=j/1%10;int shi=j/10%10;int bai=j/100%10;if(ge*ge*ge+shi*shi*shi+bai*bai*bai==j){n+=1;}j+=1;}System.out.println(n);}
}
循环结构do...while语句的格式:
A:do...while循环的基本格式:do {循环体语句;}while(判断条件语句);完整格式:初始化条件语句;do {循环体语句;控制条件语句;}while(判断条件语句);
B:执行流程:a:执行初始化条件语句;b:执行循环体语句;c:执行控制条件语句;d:执行判断条件语句,看其返回值是true还是false如果是true,就继续执行如果是false,就结束循环e:回到b继续。
package org.westos.java;/*
C:案例演示需求:在控制台输出10次"helloworld"需求:请在控制台输出数据1-10
*/public class MyDemo {public static void main(String[] args) {int i=1;int j=1;do{System.out.println(i+"hello world");i+=1;}while(i<=10);do{System.out.println(j);j+=1;}while(j<=10);}
}
注意事项:
A:三种循环语句的区别:(1):do...while循环至少执行一次循环体。而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。(2):A:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环,因为变量及早的从内存中消失,可以提高内存的使用效率。B:建议优先考虑for循环,然后是while循环 ,最后是do...while循环
B:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
C:两种最简单的死循环格式while(true){...}for(;;){...}
package org.westos.java;/*
A:案例演示需求:请输出一个4行5列的星星(*)图案。如图:********************注意:System.out.println("*");和System.out.print("*");的区别
*/public class MyDemo {public static void main(String[] args) {for (int i = 1; i <= 4; i++) {for (int j = 1; j <= 5; j++) {System.out.print("*");}System.out.print("\n");}}
}
package org.westos.java;/*
A:案例演示需求:请输出下列的形状***************
*/public class MyDemo {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {for (int j = 1; j <= i; j++) {System.out.print("*");}System.out.print("\n");}}
}
package org.westos.java;/*
A:案例演示需求:在控制台输出九九乘法表。
B:代码优化注意:'\x' x表示任意,这种做法叫转义字符。'\t' tab键的位置'\n' 换行
*/public class MyDemo {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+"="+j*i+"\t");}System.out.print("\n");}}
}
A:什么是控制跳转语句前面我们已经说过了,Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便。比如说,我想在某个循环执行到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
B:控制跳转语句的分类break 中断continue 继续return 返回
A:break的使用场景(1):在选择结构switch语句中(2):在循环语句中注意:离开使用场景的存在是没有意义的
B:作用a:退出单层循环b:退出多层循环(几乎不使用)要想实现这个效果,就必须知道一个东西;带标签的语句;格式:标签名:语句
package org.westos.java;public class MyDemo {public static void main(String[] args) {a:for(int x=1; x<=3; x++) {for (int i = 1; i <= 3; i++) {if(i==2){break;}System.out.println("java");//输出java三次}}}
}
package org.westos.java;/*
退出多层循环,使用标签
*/public class MyDemo {public static void main(String[] args) {a:for(int x=1; x<=3; x++) {for (int i = 1; i <= 3; i++) {if(i==2){break a;}System.out.println("java");//输出java一次}}}
}
A:continue的使用场景(1):在循环语句中(2):离开使用场景的存在是没有意义的
B:作用a:跳出一次循环,执行下一步操作
package org.westos.java;/*
C:练习题for(int x=1; x<=10; x++) {if(x%3==0) {//在此处填写代码}System.out.println(“Java基础班”);}我想在控制台输出2次:“Java基础班“我想在控制台输出7次:“Java基础班“我想在控制台输出13次:“Java基础班“
*/public class MyDemo {public static void main(String[] args) {int n=0;for(int x=1; x<=10; x++) {if(x%3==0) {//在此处填写代码break;//2//continue;//7/*System.out.println("java");//13n+=1;*/}System.out.println("java");n+=1;}System.out.println(n);}
}
A:return的作用return 就是退出一个方法。跳转到上层调用的方法。这个在方法的使用那里会在详细的讲解。
B:案例演示return: 结束当前方法break: 结束单层循环continue: 结束当前循环,执行下一次循环
二、方法
A:什么是方法方法就是完成特定功能的代码块在很多语言中都有函数的定义,但是在咱们JAVA语言中,我们将其称之为方法。
B:方法的格式修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ....){方法体;return 返回值;}
C:方法的格式详细说明(1): 修饰符 比较多,后面会详细介绍。目前使用 public static(2): 返回值类型 用于限定返回值的数据类型(3): 方法名 就是一个名称,它的存在是为了方便我们调用方法(4): 参数类型 限定调用方法时传入参数的数据类型(5): 参数名 是一个变量,接收调用方法时传入的参数(这个参数其实有一个专业的名词,被称之为形式参数,它的作用是用来接收实际参数的.)(6): 方法体 完成功能的代码(7): return 结束方法以及返回方法指定类型的值 (8): 返回值 就是功能的结果,由return带回,带回给调用者
package org.westos.java;/*
A:需求:求两个数据之和的案例
*/public class MyDemo {public static void main(String[] args) {int sum = sum(5, 6);System.out.println(sum);}public static int sum(int a,int b){return a+b;}
}
package org.westos.java;/*
A:案例演示: 需求:获取两个数中的较大值
B:案例演示: 需求:比较两个数是否相等
使用键盘录入改进
*/import java.util.Scanner;public class MyDemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入第一个数字");double x = sc.nextDouble();System.out.println("输入第二个数字");double y = sc.nextDouble();double max = max(x, y);boolean compare = compare(x, y);if (compare){System.out.println("两个数相等");}else {System.out.println("两个数不相等,最大值是:"+max);}}public static double max(double a,double b){double max=a>b?a:b;return max;}public static boolean compare(double a,double b){return a==b;}
}
方法的注意事项:
A: 方法不调用不执行
B: 方法与方法是平级关系,不能嵌套定义
C: 方法定义的时候参数之间用逗号隔开
D: 方法调用的时候不用再传递数据类型,实参可以是常量,也可以是变量
E: 如果方法有明确的返回值,一定要由return带回一个值
package org.westos.java;/*
A:案例演示需求:根据键盘录入的行数和列数,在控制台输出星形
*/import java.util.Scanner;public class MyDemo {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();show(x,y);}public static void show(int x,int y){for (int i = 1; i <= x; i++) {for (int j = 1; j <= y; j++) {System.out.print("*");}System.out.println();}return;}
}
package org.westos.java;/*
A:案例演示: 需求:根据键盘录入的数据输出对应的乘法表
*/import java.util.Scanner;public class MyDemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入乘法表大小");int x = sc.nextInt();multiplicationTable(x);}public static void multiplicationTable(int x){for (int i = 1; i <= x; i++) {for (int j = 1; j <= i; j++) {System.out.print(j+"*"+i+"="+j*i+"\t");}System.out.println();}}
}
方法重载:
在同一个类中,允许存在一个以上的同名方法。允许条件:
只要它们的参数列表不同,与返回值无关,不拿返回值类型来区分。其中参数列表不同包含:
A:参数个数不同
B:参数类型不同
package org.westos.java;/*
方法重载
*/import java.util.Scanner;public class MyDemo {public static void main(String[] args) {sum(1,2);//输出 int}public static void sum(int a,int b){System.out.println("int");return;}
/* public static int sum(int a,int b){return a+b;}*/public static void sum(double a,int b){System.out.println("double");//return a+b;}public static int sum(int a,int b,int c){return a+b+c;}public static void sum(byte a,int b){System.out.println("byte");}
}
2.Java语言基础——流程控制语句与方法相关推荐
- EduCoder Java程序设计---Java语言基础(十)- 方法的使用
第1关 如何定义方法 package step1;public class HelloWorld {/********** Begin **********///定义一个方法,用来和老师打招呼publ ...
- 菜鸟学习笔记:Java基础篇2(变量、运算符、流程控制语句、方法)
菜鸟学习笔记:Java基础篇2 变量 基本概念 变量作用域 final关键字 运算符 算术运算符 比较运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 运算符优先级 Java三种流程控制语句 顺序 ...
- [JAVA_开课吧资源]第一周 Java语言概述、Java语言基础
主题一 Java语言概述 » JDK介绍及其基本组件 Sun公司利用Java开发工具箱(Java Development Toolkit ,JDK)发布Java的各个版本.JDK由开发和测试Java程 ...
- java语言定义一个具备栈功能的类_Java学习笔记 第二章 Java语言基础
第二章 JAVA语言基础 一.关键字 1.关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有的字母都为小写 2.用于定义数据类型的关键字 c;ass interface ...
- Java语言基础(一)
Java语言基础组成 关键字 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关键字 class interface byte short int lo ...
- JAVA 语言基础学习
JAVA 语言基础 文章目录 JAVA 语言基础 Java概述 Java语言的诞生 JAVA语言的发展 JAVA语言的特点 什么是跨平台性? 跨平台的实现原理 JDK与JRE JDK的下载和安装 Pa ...
- Java 学习(一)Java语言基础
Java 语言基础(一) 前言 一.注释和标识符 1. 注释 2. 字符集 3. 标识符 4. 关键字(略) 二.数据类型 1.基本类型 2.引用类型 三. 常量和变量 1.常量 2.变量 四.操作符 ...
- java语言中声明布尔型_【Java初探02】——Java语言基础
本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...
- 【JAVA语言基础】
JAVA语言基础 一.JAVA主类结构 1.包声明 2.声明成员变量和局部变量 3.编写主方法 4.导入API类库 二.基本数据类型 1.整数类型 2.浮点类型 3.字符类型 4.布尔类型 三.变量与 ...
- JAVA——从基础学起(一)Java语言基础
一 Java语言基础 1.1Java主类结构 (1)Java是面向对象的编程语言,基本组成单元是类,类体中包括属性和方法两部分.每个应用程序都需要含有一个main方法,含有main方法的类叫做主类. ...
最新文章
- C++ string流
- HTML属性——180226
- 请写一段 PHP 代码 ,确保多个进程同时写入同一个文件成功
- 【报名开启】阿里云线下Workshop让你玩转ECS 快速搭建云上博客
- 【Xamarin.Android】应用消费品
- 检测对抗样本_对抗T恤以逃避ML人检测器
- mysql 写入随机字中文符_MySQL产生随机字符
- spring 多线程 事务 源码解析(一)
- Linux下实现自动设置SSH代理
- Spark基础学习笔记08:Scala简介与安装
- UE4次世代的移动平台渲染技术
- IBM打造云访问量子计算机 规模仅相当于D-Wave系统的四百分之一
- 微信小程序demo2
- Pandas to_string
- Javascript 清空input type=file 的值方法
- Android UI设计--ListView Item的OnItemLongClickListener同时监听两种事件
- MySQL数据库入门学习 #CSDN博文精选# #IT技术# #数据库# #MySQL#
- python获取鼠标指针坐标_JS获取鼠标指针的位置(坐标)
- Unity模拟毛笔字效果
- 【Linux】区分Ubuntu桌面版本和服务器版本
热门文章
- Node.js全栈开发笔记与心得
- IOC 之深入理解 Spring IoC
- 乳清蛋白和支链氨基酸不得不说的关系
- Mars3D开发教程学习步骤(不定时更新
- Vue学习笔记(一) 基础+指令+侦听器+计算属性+vue-cli
- 器:Linux - 断点续传文件
- AMR文件时长解析——附c代码
- iOS集成支付宝支付 Alipay
- Mac下导入virtualenv报错:its parent directory is not owned by the current user
- PPT计算机原理结构初步,测量实践初步(赖丽娟).ppt