# 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小");
}
}
}
~~~
> 输出的结果
![这里写图片描述](http://img.blog.csdn.net/20160508151837822)
> 这里我们来写一个经典的在题目
~~~
//公共的 类 类名
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的话就提示不在范围内
> 所以输出的结果
![这里写图片描述](http://img.blog.csdn.net/20160508165447027)
> 当然,如果你要判断季节什么的,也可以用逻辑运算来判断,这里就不讲了;
### 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,这样就循环了五次,我们看看输出结果
![这里写图片描述](http://img.blog.csdn.net/20160508202359054)
### 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);
}
}
~~~
> 这里运行的结果
![这里写图片描述](http://img.blog.csdn.net/20160508202730012)
> 我们可以得到的区别就是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去自增十次
![这里写图片描述](http://img.blog.csdn.net/20160508203214540)
> 这个过程其实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);
}
}
~~~
> 这里打印值
![这里写图片描述](http://img.blog.csdn.net/20160511202331116)
> 好,是不是很简单,我们继续来看下一个
~~~
//公共的 类 类名
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();
}
}
}
~~~
> 看结果
![这里写图片描述](http://img.blog.csdn.net/20160511203826841)
> 这样,我们再来打印一个直角三角形
~~~
//公共的 类 类名
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();
}
}
}
~~~
> 得到的结果
![这里写图片描述](http://img.blog.csdn.net/20160511204139276)
> 那我们换种思路去写一个倒的
~~~
//公共的 类 类名
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();
}
}
}
~~~
![这里写图片描述](http://img.blog.csdn.net/20160511204323546)
> 小练习是好玩,也是大学时候的经典,我们继续
~~~
//公共的 类 类名
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();
}
}
}
~~~
> 打印
![这里写图片描述](http://img.blog.csdn.net/20160511204814048)
> 这些都不算难的,我们来一个九九乘法表,还记得大学里面学这个也费了不少功夫
~~~
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(" ");
}
}
}
~~~
> 打印下结果
![这里写图片描述](http://img.blog.csdn.net/20160511205504300)
### 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;
}
}
}
~~~
> 运行的结果
![这里写图片描述](http://img.blog.csdn.net/20160511210417978)
> 当我们循环第一次的时候,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);
}
}
}
~~~
> 打印的结果
![这里写图片描述](http://img.blog.csdn.net/20160511210916353)
> 当符合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,结束
![这里写图片描述](http://img.blog.csdn.net/20160511211724433)
## 二.函数
> 函数是什么?
>
> 函数就是定义在类中具有特定功能的一段独立小程序,函数也称方法
>
> 格式
>
> 修饰符 返回类型 函数名 (参数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;
}
}
~~~
> 这样,我们输出的结果
![这里写图片描述](http://img.blog.csdn.net/20160511213305220)
> 由此可以看出函数的特点
* 便于对该功能进行复用
* 函数只有被调用的时候才会执行
* 函数的出现提高了代码的复用性
* 对于函数没有具体返回值的情况,返回值类型可以用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,欢迎大家进来交流技术!
版权声明:本文为博主原创文章,博客地址:http://blog.csdn.net/qq_26787115,未经博主允许不得转载。
- 0-发现
- AndroidInterview-Q-A
- Android能让你少走弯路的干货整理
- LearningNotes
- temp
- temp11
- 部分地址
- 0-待办任务
- 待补充列表
- 0-未分类
- AndroidView事件分发与滑动冲突处理
- Spannable
- 事件分发机制详解
- 1-Java
- 1-Java-01基础
- 未归档
- 你应该知道的JDK知识
- 集合框架
- 1-Java-04合集
- Java之旅0
- Java之旅
- JAVA之旅01
- JAVA之旅02
- JAVA之旅03
- JAVA之旅04
- JAVA之旅05
- JAVA之旅06
- JAVA之旅07
- JAVA之旅08
- JAVA之旅09
- java之旅1
- JAVA之旅10
- JAVA之旅11
- JAVA之旅12
- JAVA之旅13
- JAVA之旅14
- JAVA之旅15
- JAVA之旅16
- JAVA之旅17
- JAVA之旅18
- JAVA之旅19
- java之旅2
- JAVA之旅20
- JAVA之旅21
- JAVA之旅22
- JAVA之旅23
- JAVA之旅24
- JAVA之旅25
- JAVA之旅26
- JAVA之旅27
- JAVA之旅28
- JAVA之旅29
- java之旅3
- JAVA之旅30
- JAVA之旅31
- JAVA之旅32
- JAVA之旅33
- JAVA之旅34
- JAVA之旅35
- 1-Java-05辨析
- HashMapArrayMap
- Java8新特性
- Java8接口默认方法
- 图解HashMap(1)
- 图解HashMap(2)
- 2-Android
- 2-Android-1-基础
- View绘制流程
- 事件分发
- AndroidView的事件分发机制和滑动冲突解决
- 自定义View基础
- 1-安卓自定义View基础-坐标系
- 2-安卓自定义View基础-角度弧度
- 3-安卓自定义View基础-颜色
- 自定义View进阶
- 1-安卓自定义View进阶-分类和流程
- 10-安卓自定义View进阶-Matrix详解
- 11-安卓自定义View进阶-MatrixCamera
- 12-安卓自定义View进阶-事件分发机制原理
- 13-安卓自定义View进阶-事件分发机制详解
- 14-安卓自定义View进阶-MotionEvent详解
- 15-安卓自定义View进阶-特殊形状控件事件处理方案
- 16-安卓自定义View进阶-多点触控详解
- 17-安卓自定义View进阶-手势检测GestureDetector
- 2-安卓自定义View进阶-绘制基本图形
- 3-安卓自定义View进阶-画布操作
- 4-安卓自定义View进阶-图片文字
- 5-安卓自定义View进阶-Path基本操作
- 6-安卓自定义View进阶-贝塞尔曲线
- 7-安卓自定义View进阶-Path完结篇伪
- 8-安卓自定义View进阶-Path玩出花样PathMeasure
- 9-安卓自定义View进阶-Matrix原理
- 通用类介绍
- Application
- 2-Android-2-使用
- 2-Android-02控件
- ViewGroup
- ConstraintLayout
- CoordinatorLayout
- 2-Android-03三方使用
- Dagger2
- Dagger2图文完全教程
- Dagger2最清晰的使用教程
- Dagger2让你爱不释手-终结篇
- Dagger2让你爱不释手-重点概念讲解、融合篇
- dagger2让你爱不释手:基础依赖注入框架篇
- 阅读笔记
- Glide
- Google推荐的图片加载库Glide:最新版使用指南(含新特性)
- rxjava
- 这可能是最好的RxJava2.x入门教程完结版
- 这可能是最好的RxJava2.x入门教程(一)
- 这可能是最好的RxJava2.x入门教程(三)
- 这可能是最好的RxJava2.x入门教程(二)
- 这可能是最好的RxJava2.x入门教程(五)
- 这可能是最好的RxJava2.x入门教程(四)
- 2-Android-3-优化
- 优化概况
- 各种优化
- Android端秒开优化
- apk大小优化
- 内存分析
- 混淆
- 2-Android-4-工具
- adb命令
- 一键分析Android的BugReport
- 版本控制
- git
- git章节简述
- 2-Android-5-源码
- HandlerThread 源码分析
- IntentService的使用和源码分析
- 2-Android-9-辨析
- LRU算法
- 什么是Bitmap
- 常见图片压缩方式
- 3-Kotlin
- Kotlin使用笔记1-草稿
- Kotlin使用笔记2
- kotlin特性草稿
- Kotlin草稿-Delegation
- Kotlin草稿-Field
- Kotlin草稿-object
- 4-JavaScript
- 5-Python
- 6-Other
- Git
- Gradle
- Android中ProGuard配置和总结
- gradle使用笔记
- Nexus私服搭建
- 编译提速最佳实践
- 7-设计模式与架构
- 组件化
- 组件化探索(OKR)
- 1-参考列表
- 2-1-组件化概述
- 2-2-gradle配置
- 2-3-代码编写
- 2-4-常见问题
- 2-9-值得一读
- 8-数据结构与算法
- 0临时文件
- 汉诺塔
- 8-数据-1数据结构
- HashMap
- HashMap、Hashtable、HashSet 和 ConcurrentHashMap 的比较
- 迟到一年HashMap解读
- 8-数据-2算法
- 1个就够了
- Java常用排序算法(必须掌握的8大排序算法)
- 常用排序算法总结(性能+代码)
- 必须知道的八大种排序算法(java实现)
- 9-职业
- 阅读
- 书单
- 面试
- 面试-01-java
- Java面试题全集骆昊(上)
- Java面试题全集骆昊(下)
- Java面试题全集骆昊(中)
- 面试-02-android
- 40道Android面试题
- 面试-03-开源源码
- Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程
- 面试-07-设计模式
- 面试-08-算法
- 面试-09-其他
- SUMMARY
- 版权说明
- temp111