在这一节,学习程序流程控制,具体包括判断结构、选择结构、循环结构。

1、判断结构(if、if-else)

三元运算符和if-else的区别

三元运算符,是一个运算符,所以运行必须有结果 而if-else语句,只控制流程,所以不一定有结果 某些情况下,可以把if-else改写为三元运算符的形式 前提是要保证if-else执行完有具体的结果出现

例子1:输入对应的数字,选择输出对应的结果

 package day01;

 import java.util.Scanner;

 public class translate {

     public static void main(String[] args) {
int num = 0;
// TODO Auto-generated method stub
System.out.println("请输入1-5当中的数字:");
Scanner sc = new Scanner(System.in);
int i=sc.nextInt();
if(i == 1) {
System.out.println("该用户输入"+i+"对应的单词是Apple");
}else if(i == 2) {
System.out.println("该用户输入"+i+"对应的单词是banana");
}else if(i == 3) {
System.out.println("该用户输入"+i+"对应的单词是pear");
}else if(i == 4) {
System.out.println("该用户输入"+i+"对应的单词是peach");
}else if(i == 5) {
System.out.println("该用户输入"+i+"对应的单词是orange");
} } }

例子2:进行if的嵌套

 package homework;

 import java.util.Scanner;

 public class exer8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入是否是会员: 是(y)/否(n)");
String i = sc.next();
System.out.println("测试");
if(i.equals("y")) {
System.out.println("请输入购物金额:");
float money = sc.nextFloat();
if(money>200) {
System.out.println("实际支付:" + (float)(money*(0.75)));
}else {
System.out.println("实际支付:" + (float)(money*(0.8)));
}
}else if(i.equals("n")){
System.out.println("请输入购物金额:");
float money = sc.nextFloat();
System.out.println("实际支付:" + (float)(money*(0.9)));
} } }

2、选择结构(switch)

switch语句特点: a,switch语句选择的类型在jdk1.6只支持四种:byte,short,int , char。jdk1.7以后支持String类型的。 b,case之间与default没有顺序。先执行第一个case,没有匹配的case最后再执行default。 c,结束switch语句的两种情况:遇到break,执行到switch语句结束。 d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

例子1:实现计算器

 package day02;

 import java.util.Scanner;

 public class switch01 {

     public static void main(String[] args) {

         // 计算器
int result = 0;
System.out.println("输入第一个数:");
Scanner sc = new Scanner(System.in);
int num1=sc.nextInt(); System.out.println("选择加减乘除:(1加 2减 3乘 4除)");
int choice=sc.nextInt();
switch(choice) {
case 1:
System.out.println("输入第二个数:");
int num2=sc.nextInt();
result = num1+num2;
System.out.println("得到的结果为:"+result);
break;
case 2:
System.out.println("输入第二个数:");
int num3=sc.nextInt();
result = num1-num3;
System.out.println("得到的结果为:"+result);
break;
case 3:
System.out.println("输入第二个数:");
int num4=sc.nextInt();
result = num1*num4;
System.out.println("得到的结果为:"+result);
break;
case 4:
System.out.println("输入第二个数:");
int num5=sc.nextInt();
result = num1/num5;
System.out.println("得到的结果为:%s"+result);
break;
default:break;
} } }

例子2:实现星期的翻译

 package day02;

 import java.util.Scanner;

 public class week {

     public static void main(String[] args) {
int num = 0;
// TODO Auto-generated method stub
System.out.println("请输入1-7当中的数字:");
Scanner sc = new Scanner(System.in);
int i=sc.nextInt();
switch(i) {
case 1:
System.out.println("今天是星期一");
break;
case 2:
System.out.println("今天是星期二");
break;
case 3:
System.out.println("今天是星期三");
break;
case 4:
System.out.println("今天是星期四");
break;
case 5:
System.out.println("今天是星期五");
break;
case 6:
System.out.println("今天是星期六");
break;
case 7:
System.out.println("今天是星期七");
break;
default:break; } } }

3、循环结构(while,do-while,for) 

do while特点是条件无论是否满足, 循环体至少被执行一次。

定义循环要注意 1:定义循环的条件 2:控制循环执行的次数 while里面的表达式可以用true,这样的话这个循环就是一个死循环了,会一直执行。

格式: for(初始化表达式;循环条件表达式;循环后的操作表达式) {

  执行语句;

  (循环体)

}

注:

a:for里面的几个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复这个过程,直到条件不满足为止。

b:while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。

c:最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

例子1:for循环 实现99乘法表

 package day02;

 public class jiujiu {

     public static void main(String[] args) {
// TODO Auto-generated method stub
int result;
for(int i=1;i<10;i++) {
for(int j=1;j<=i;j++) {
result = i*j;
System.out.print(j+"*"+i+"="+result+"\t");
}
System.out.println();
} } }

例子2: while循环  实现判断多少年后,学员达到1000000

 package homework;

 public class exer2 {

     public static void main(String[] args) {
int year = 2012;
double student = 250000;
while(student <= 1000000) {
student = student * (1 + 0.25);
year++;
}
System.out.println("到"+ year +"年培训学员人数将达到1000000"); } }

4、其他控制流程语句

break(跳出), continue(继续)

break语句:应用范围:选择结构和循环结构。 跳出当前循环

continue语句:应用于循环结构。 结束本次循环,继续下次循环

注:

a:这两个语句离开应用范围,存在是没有意义的。

b:这两个语句单独存在下面都不可以有语句,因为执行不到。

c:continue语句是结束本次循环继续下次循环。

d:花括号的出现,可以让这两个语句作用于指定的范围。

大数据之路day02_2--if switch while for的更多相关文章

  1. 大数据之路week04--day06(I/O流阶段一 之异常)

    从这节开始,进入对I/O流的系统学习,I/O流在往后大数据的学习道路上尤为重要!!!极为重要,必须要提起重视,它与集合,多线程,网络编程,可以说在往后学习或者是工作上,起到一个基石的作用,没了地基,房 ...

  2. C#码农的大数据之路 - 使用C#编写MR作业

    系列目录 写在前面 从Hadoop出现至今,大数据几乎就是Java平台专属一般.虽然Hadoop或Spark也提供了接口可以与其他语言一起使用,但作为基于JVM运行的框架,Java系语言有着天生优势. ...

  3. 胖子哥的大数据之路(11)-我看Intel&&Cloudera的合作

    一.引言 5月8日,作为受邀嘉宾,参加了Intel与Cloudera在北京中国大饭店新闻发布会,两家公司宣布战略合作,该消息成为继Intel宣布放弃大数据平台之后的另外一个热点新闻.对于Intel的放 ...

  4. 胖子哥的大数据之路(10)- 基于Hive构建数据仓库实例

    一.引言 基于Hive+Hadoop模式构建数据仓库,是大数据时代的一个不错的选择,本文以郑商所每日交易行情数据为案例,探讨数据Hive数据导入的操作实例. 二.源数据-每日行情数据 三.建表脚本 C ...

  5. 胖子哥的大数据之路(9)-数据仓库金融行业数据逻辑模型FS-LDM

    引言: 大数据不是海市蜃楼,万丈高楼平地起只是意淫,大数据发展还要从点滴做起,基于大数据构建国家级.行业级数据中心的项目会越来越多,大数据只是技术,而非解决方案,同样面临数据组织模式,数据逻辑模式的问 ...

  6. 胖子哥的大数据之路(7)- 传统企业切入核心or外围

    一.引言 昨天和一个做互联网大数据(零售行业)的朋友交流,关于大数据传统企业实施的切入点产生了争执,主要围绕两个问题进行了深入的探讨: 问题1:对于一个传统企业而言什么是核心业务,什么是外围业务? 问 ...

  7. 胖子哥的大数据之路(6)- NoSQL生态圈全景介绍

    引言: NoSQL高级培训课程的基础理论篇的部分课件,是从一本英文原著中做的摘选,中文部分参考自互联网.给大家分享. 正文:  The NoSQL Ecosystem 目录 The NoSQL Eco ...

  8. 胖子哥的大数据之路(四)- VisualHBase功能需求框架

    一.引言 大数据在结构化数据存储方面的应用需求越来越明确,但是大数据环境下辅助开发工具的不完善,给数据库管理人员和开发人员带来的不变难以言表,基于此创建了开源项目VisualHBase,同时创建了Vi ...

  9. 大数据之路week01--自学之集合_1(Collection)

    经过我个人的调查,发现,在今后的大数据道路上,集合.线程.网络编程变得尤为重要,为什么? 因为大数据大数据,我们必然要对数据进行处理,而这些数据往往是以集合形式存放,掌握对集合的操作非常重要. 在学习 ...

  10. 大数据之路day01_1--Java下载、安装等配置

    从今天开始,我就正式的走上大数据的道路了,如果说我为啥要去学习大数据,可能我的初衷是以后可以接触到人工智能方面的技术,后来在自学的过程中发现,学习人工智能,需要扎实的算法,以及对大量数据的处理,再者, ...

随机推荐

  1. 工业搬运机器人(AGV)为什么要选择视觉导航

    在智能制造和仓储物流领域,搬运机器人的需求量在逐年上升.机器人(AGV)的种类千差万别,如何选择成为需求方头痛的问题. 本文将从客户关心的多个方面,对市面上的常见的工业级导航方案做一个比较. 搬运机器 ...

  2. CSS样式手册

    字体属性:(font) 大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 样式 {font-style: obl ...

  3. 【DP合集】合并 union

    给出一个 1 ∼ N 的序列 A ( A 1 , A 2 , ..., A N ) .你每次可以将两个相邻的元素合并,合并后的元素权值即为 这两个元素的权值之和.求将 A 变为一个非降序列,最少需要多 ...

  4. Android OkHttp + Retrofit 下载文件与进度监听

    本文链接 下载文件是一个比较常见的需求.给定一个url,我们可以使用URLConnection下载文件. 使用OkHttp也可以通过流来下载文件. 给OkHttp中添加拦截器,即可实现下载进度的监听功 ...

  5. LeetCode初级算法--字符串01:反转字符串

    LeetCode初级算法--字符串01:反转字符串 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.ne ...

  6. CS231n:Python Numpy教程

    Python 基本数据类型 容器 列表 字典 集合 元组 函数 类 Numpy 数组 访问数组 数据类型 数组计算 广播 SciPy 图像操作 MATLAB文件 点之间的距离 Matplotlib 绘 ...

  7. vue中methods,computed,filters,watch的总结

    08.28自我总结 vue中methods,computed,filters,watch的总结 一.methods methods属性里面的方法会在数据发生变化的时候你,只要引用了此里面分方法,方法就 ...

  8. drf框架中分页组件

    drf框架中分页组件 普通分页(最常用) 自定制分页类 pagination.py from rest_framework.pagination import PageNumberPagination ...

  9. python selenium自动化常用关键字

    工具安装: 1.安装python 2.安装selenium库(dos命令下进入selenium-2.53.2存放路径,执行pip install selenium-2.53.2) 3.将浏览器驱动放到 ...

  10. TensorFlow2.0(8):误差计算——损失函数总结

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...