JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
JAVA的思想真的很重要,所以要专心的学——献给刚入门的小程序员们
一.语句
一般语句也就三个类型
- 判断语句 if
- 选择语句 switch
- 循环语句 for
- 当然,还有其他的
我们这里一个一个来讲
1.if
if,如果,就是判断,if(条件){}
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
int a = 5;
if (a > 10) {
System.out.println("我比10大");
} else {
System.out.println("我比10小");
}
}
}
输出的结果
这里我们来写一个经典的在题目
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
// 根据1-7来判断使星期几
int day = 3;
// 判断
if (day == 1) {
System.out.println("今天星期一");
} else if (day == 2) {
System.out.println("今天星期二");
} else if (day == 3) {
System.out.println("今天星期三");
} else if (day == 4) {
System.out.println("今天星期四");
} else if (day == 5) {
System.out.println("今天星期五");
} else if (day == 6) {
System.out.println("今天星期六");
} else if (day == 7) {
System.out.println("今天星期七");
} else {
System.out.println("不是1-7范围内的数字");
}
}
}
应该很容易看懂吧,根据day的值来判断是星期几,如果不是1-7的话就提示不在范围内
所以输出的结果
当然,如果你要判断季节什么的,也可以用逻辑运算来判断,这里就不讲了;
2.switch
这个就是选择了,结构是
switch (表达式) {
case 取值1:
break;
//最终执行
default:
break;
}
我们具体来看看怎么执行的吧
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
int a = 3;
switch (a) {
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
case 4:
System.out.println("4");
break;
case 5:
System.out.println("5");
break;
// 最终执行
default:
System.out.println("都不是");
break;
}
}
}
这里可以看到,根据a的值来选择要执行的代码块,所以这里输出的是3,如果你把a改成6,那就会输出都不是了
我们这里也来做一个挺经典的题目
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
/**
* 根据用户指定的月份,打印相应的季节
*/
int month = 7;
switch (month) {
case 1:
case 2:
case 3:
System.out.println("春");
break;
case 4:
case 5:
case 6:
System.out.println("夏");
break;
case 7:
case 8:
case 9:
System.out.println("秋");
break;
case 10:
case 11:
case 12:
System.out.println("冬");
break;
default:
System.out.println("输入不再范围内");
break;
}
}
}
这里,输出的是秋
if和switch很像,那什么时候使用呢?如果判断的具体数值不多,而是符合byte short int char 类型,使用switch,其他情况,使用if,虽然都可以,但是switch效率据说稍微高一点点…
3.while
循环语句的一种,循环有三种
- while
- do while
- for
先来看看while
while (条件) {
// 输出
}
代码来说明
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
int a = 5;
// 循环5次
while (a < 10) {
a++;
System.out.println("a = " + a);
}
}
}
这个代码是while,他会一直循环,当我们循环第一次的时候,a他自增就是6了,他继续循环,。一直到他<10,这样就循环了五次,我们看看输出结果
4. do while
do while要结合while语句这样更容易说明一些事情
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
int a = 1;
do {
System.out.println("a = " + a);
a++;
} while (a < 10);
}
}
这里运行的结果
我们可以得到的区别就是while会先判断条件再去执行语句,而后者是先去执行再去判断是否要循环
5.for
这个是个大学问,我们看一下语法格式
/**
* 条件表达式 循环条件表达式 循环后的操作表达式
*/
for (int i = 0; i < str.length; i++) {
//执行语句
}
我们再具体的看
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
/**
* 条件表达式 循环条件表达式 循环后的操作表达式
*/
for (int i = 0; i < 10; i++) {
// 执行语句
System.out.println("i = " + i);
}
}
}
让i去自增十次
这个过程其实while也是可以写的
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
int i = 0;
while (i < 10) {
System.out.println("i = " + i);
i++;
}
}
}
运行的结果都是一样的,那这两个有什么区别呢?
- 作用域不同
我们还是以小练习为主吧
首先我们看第一个
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
/**
* 获取1-10的和并且打印
*/
// 用于存储不断变化的和
int sum = 0;
// 记录累加的值
for (int i = 1; i < 11; i++) {
sum += i;
}
System.out.println("和为:"+sum);
}
}
这里打印值
好,是不是很简单,我们继续来看下一个
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
/**
* 打印1-100之间7倍数的个数
*/
int temp = 0;
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) {
temp++;
}
}
System.out.println("个数为:" + temp);
}
}
这个是不是也很简单,最重要的是思路
6.语句嵌套
就是语句中还有语句,上面那个例子就是,不过我们这里主讲双层for循环,又叫循环嵌套
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
System.out.println("Hello");
}
}
}
}
这种格式的,所以我们可以利用这种特点打印一个长方形
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print("*");
}
//换行
System.out.println();
}
}
}
看结果
这样,我们再来打印一个直角三角形
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < i; j++) {
System.out.print("*");
}
// 换行
System.out.println();
}
}
}
得到的结果
那我们换种思路去写一个倒的
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
for (int i = 0; i < 10; i++) {
for (int j = i; j < 10; j++) {
System.out.print("*");
}
// 换行
System.out.println();
}
}
}
小练习是好玩,也是大学时候的经典,我们继续
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
for (int i = 0; i < 6; i++) {
for (int j = 1; j < i; j++) {
System.out.print(" "+j);
}
System.out.println();
}
}
}
打印
这些都不算难的,我们来一个九九乘法表,还记得大学里面学这个也费了不少功夫
import java.time.Year;
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
/**
* 九九乘法表
*/
for (int i = 1; i < 10; i++) {
for (int j = 1; j < i + 1; j++) {
System.out.print(j + "*" + i + " = " + j * i + " ");
}
System.out.println(" ");
}
}
}
打印下结果
7.流程控制语句
这个是什么意思呢
- break : 跳出 选择和循环结构
- continue: 继续 循环结构
根本在于,这两个只要不是应用在应用范围内,就是无效的了,这两个语句下面都不能有语句,因为不会执行,continue是结束本次循环继续下次循环,作用范围,我们来案例
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
for (int i = 0; i < 3; i++) {
System.out.println("i : " + i);
// 跳出循环
break;
}
}
}
运行的结果
当我们循环第一次的时候,break已执行就跳出循环体了,也就不再循环了
那我们再来看看continue
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 1) {
// 继续循环
continue;
}
System.out.println("i : " + i);
}
}
}
打印的结果
当符合i % 2 == 1的时候就继续循环,不再执行下面的语句了
好的,我们语句就暂时到这里,我们用一个等腰三角形的练习来结束
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
/**
* 等腰三角形
*/
for (int i = 0; i < 5; i++) {
for (int j = i + 1; j < 5; j++) {
System.out.print(" ");
}
for (int z = 0; z <= i; z++) {
System.out.print("* ");
}
System.out.println();
}
}
}
OK,结束
二.函数
函数是什么?
函数就是定义在类中具有特定功能的一段独立小程序,函数也称方法
格式
修饰符 返回类型 函数名 (参数1…参数2){ 执行语句 return 返回值}
毕竟文笔不好,还是直接用代码表达
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
/**
* 求任何数+5的和
*/
System.out.println(getNum(5));
}
private static int getNum(int a) {
return a + 5;
}
}
这样,我们输出的结果
由此可以看出函数的特点
- 便于对该功能进行复用
- 函数只有被调用的时候才会执行
- 函数的出现提高了代码的复用性
- 对于函数没有具体返回值的情况,返回值类型可以用void,那么return就可以不用写了
要注意的是
- 函数中只能调用函数,不可以在函数内部定义函数
- 定义函数时,函数的结果返回给调用者,交由调用者处理
我们还是通过实际案例来吧
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
System.out.println(getNum());
}
private static int getNum() {
return 6 + 5;
}
}
这样就知道打印了6+5的值
三.重载
函数的重载,我们在构造方法中是见过的,我们来说一下特点
概念
在同一个类中,允许存在一个以上的同名函数,只要他们的参数或者参数类型不同即可
特点
与返回值类型无关,只看参数列表
好处
方便阅读,优化程序设计
代码演示
//公共的 类 类名
public class HelloJJAVA {
// 公共的 静态 无返回值 main方法 数组
public static void main(String[] str) {
}
private static int getNum(int a) {
return a;
}
private static int getNum(int a, int b) {
return a + b;
}
private static int getNum(int a, int b, int c) {
return a + b + c;
}
}
这就是重载
什么时候用重载?
当定义的功能相同、但参与的未知运算不同 ,那么,就定义一个函数名称以表示功能,方便阅读,而通过参数列表的不同来区分同名函数OK,这个重载的示例就不写了,我们本篇就先到这里吧,下节我们讲数组之类的数据处理,嘻嘻!
我的群,通往Android的神奇之旅 :555974449,欢迎大家进来交流技术!
JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结的更多相关文章
- java语句与流程控制
java程序结构按照结构化程序的思想分为顺序结构,选择结构,和循环结构. ①选择语句 选择结构分为单选择,双选择和多选择.双选择是标准的选择结构,单选择是双选择的简化形式,多选择是双选择的嵌套形式. ...
- JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!
JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...
- 我的Java之旅 第四课 JAVA 语言语法 基础
1 整型 int num = 1_000_000; //从java 7开始支持的语法 ,只是让人更易读,java编绎器会去除 2 字符串 一定不能使用==运算 ...
- 五、Java基础---------if else、switch总结
在前几篇博客中主要是以笔者遇到的一些典型的题目为例子而展开的讨论,接下来几篇将是以知识点的结构进行讲述.本文主要是讲述if ()else .if() else if().switch() case 的 ...
- Java并发(二十二):定时任务ScheduledThreadPoolExecutor
需要在理解线程池原理的基础上学习定时任务:Java并发(二十一):线程池实现原理 一.先做总结 通过一个简单示例总结: public static void main(String[] args) { ...
- Java基本语法--程序流程控制
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构.分支结构.循环结构.本篇博客主要是对 ...
- java 基础 流程控制
鄙人不才,基础不好,趁着闲时简单学习一下,仅作学习分享,如有不正确地方还请各位看客不吝指出. Java流程主要可以分为: 顺序(可以按照正常顺序一步步往下运行的) 选择(三元操作符[?:];if el ...
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...
- JAVA之旅(二十九)——文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习
JAVA之旅(二十九)--文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习 我们继续学习File 一.文件递归 我们可以来实现 ...
随机推荐
- 使用Java可以做得一些事
安卓 Web JSP使用Echarts的最简单的例子 微信 wechat4j weixin-java-tools weixin4j 网络服务器
- 移动开发之【微信小程序】的原理与权限问题以及相关的简易教程
这几天圈子里到处都在传播着这样一个东西,微信公众平台提供了一种新的开放能力,开发者可以快速开发一个小程序,取名曰:微信公众平台-小程序 据说取代移动开发安卓和苹果,那这个东东究竟是干吗用的?但很多人觉 ...
- python复杂网络库networkx:绘图draw
http://blog.csdn.net/pipisorry/article/details/54291831 networkx使用matplotlib绘制函数 draw(G[, pos, ax, h ...
- Kafka系列之-自定义Producer
前面已经讲到了,在Kafka中,Message是由Producer产生的,Producer产生的Message会发送到Topic的指定Partition中.Producer可以有多种形式,也可以由用户 ...
- Android Studio精彩案例(一)《ActionBar和 ViewPager版仿网易新闻客户端》
转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 为了能更好的分享高质量的文章,所以开设了此专栏.文章代码都以Android Studio亲测运行,读者朋友可在后面直接下载源码.该专栏 ...
- Swift中String和NSString的一个不同之处
我们知道在Swift中String和NSString是可以互相转换使用的-额-应该是在绝大数情况下可以互相转换使用.在某些情况下可能还有一丝丝略微的差别:比如在涉及到处理字符串中字符索引的时候. 我们 ...
- N个鸡蛋放到M个篮子中
N个鸡蛋放到M个篮子中,篮子不能为空,要满足:对任意不大于N的数量,能用若干个篮子中鸡蛋的和表示. 写出函数,对输入整数N和M,输出所有可能的鸡蛋的放法. 比如对于9个鸡蛋5个篮子 解至少有三组: 1 ...
- 带你深入理解STL之Set和Map
在上一篇博客带你深入理解STL之RBTree中,讲到了STL中关于红黑树的实现,理解起来比较复杂,正所谓前人种树,后人乘凉,RBTree把树都种好了,接下来就该set和map这类关联式容器来" ...
- How to generate the complex data regularly to Ministry of Transport of P.R.C by DB Query Analyzer
How to generate the complex data regularly to Ministry of Transport of P.R.C by DB Query Analyzer 1 ...
- 指令汇B新闻客户端开发(五) ShareSdk的使用
ShareSdk是一个分享按钮的开源框架,我们首先可以去mob的官网下载这个控件.mob官网,然后找到sdk下载那一栏, 下载下来之后点击这个.jar文件就会有一个弹窗,填写自己的应用包名和要哪些分享 ...