大数据之路day02_2--if switch while for
在这一节,学习程序流程控制,具体包括判断结构、选择结构、循环结构。
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的更多相关文章
- 大数据之路week04--day06(I/O流阶段一 之异常)
从这节开始,进入对I/O流的系统学习,I/O流在往后大数据的学习道路上尤为重要!!!极为重要,必须要提起重视,它与集合,多线程,网络编程,可以说在往后学习或者是工作上,起到一个基石的作用,没了地基,房 ...
- C#码农的大数据之路 - 使用C#编写MR作业
系列目录 写在前面 从Hadoop出现至今,大数据几乎就是Java平台专属一般.虽然Hadoop或Spark也提供了接口可以与其他语言一起使用,但作为基于JVM运行的框架,Java系语言有着天生优势. ...
- 胖子哥的大数据之路(11)-我看Intel&&Cloudera的合作
一.引言 5月8日,作为受邀嘉宾,参加了Intel与Cloudera在北京中国大饭店新闻发布会,两家公司宣布战略合作,该消息成为继Intel宣布放弃大数据平台之后的另外一个热点新闻.对于Intel的放 ...
- 胖子哥的大数据之路(10)- 基于Hive构建数据仓库实例
一.引言 基于Hive+Hadoop模式构建数据仓库,是大数据时代的一个不错的选择,本文以郑商所每日交易行情数据为案例,探讨数据Hive数据导入的操作实例. 二.源数据-每日行情数据 三.建表脚本 C ...
- 胖子哥的大数据之路(9)-数据仓库金融行业数据逻辑模型FS-LDM
引言: 大数据不是海市蜃楼,万丈高楼平地起只是意淫,大数据发展还要从点滴做起,基于大数据构建国家级.行业级数据中心的项目会越来越多,大数据只是技术,而非解决方案,同样面临数据组织模式,数据逻辑模式的问 ...
- 胖子哥的大数据之路(7)- 传统企业切入核心or外围
一.引言 昨天和一个做互联网大数据(零售行业)的朋友交流,关于大数据传统企业实施的切入点产生了争执,主要围绕两个问题进行了深入的探讨: 问题1:对于一个传统企业而言什么是核心业务,什么是外围业务? 问 ...
- 胖子哥的大数据之路(6)- NoSQL生态圈全景介绍
引言: NoSQL高级培训课程的基础理论篇的部分课件,是从一本英文原著中做的摘选,中文部分参考自互联网.给大家分享. 正文: The NoSQL Ecosystem 目录 The NoSQL Eco ...
- 胖子哥的大数据之路(四)- VisualHBase功能需求框架
一.引言 大数据在结构化数据存储方面的应用需求越来越明确,但是大数据环境下辅助开发工具的不完善,给数据库管理人员和开发人员带来的不变难以言表,基于此创建了开源项目VisualHBase,同时创建了Vi ...
- 大数据之路week01--自学之集合_1(Collection)
经过我个人的调查,发现,在今后的大数据道路上,集合.线程.网络编程变得尤为重要,为什么? 因为大数据大数据,我们必然要对数据进行处理,而这些数据往往是以集合形式存放,掌握对集合的操作非常重要. 在学习 ...
- 大数据之路day01_1--Java下载、安装等配置
从今天开始,我就正式的走上大数据的道路了,如果说我为啥要去学习大数据,可能我的初衷是以后可以接触到人工智能方面的技术,后来在自学的过程中发现,学习人工智能,需要扎实的算法,以及对大量数据的处理,再者, ...
随机推荐
- 记录一次Metaspace扩容引发FGC的调优总结
开始之前 在开始之前先记录一个我碰到的jvm调优的坑.那就是… 为啥我配置到idea64exe.vmoptions中的参数没有生效??? 由于之前一直是在mac上开发,本地开发时当需要优化jvm参数的 ...
- 微信小程序学习总结
微信小程序开发环境安装以及相关设置配置 微信小程序前端页面书写 微信小程序前端样式WXSS书写 微信小程序中事件 微信小程序自定义组件 微信小程序发起请求 微信小程序登入流程 微信小程序路由跳转 微信 ...
- API---注册表编程
首先来认识一下键,项,值吧: 左边有五个根键: HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USER HKEY_CURREN ...
- thinkphp5底层基类封装、内部类函数
记录下thinkphp5自定义底层基类.内部类函数使用笔记 大部分笔记来自tp手册. 底层常用代码的封装 在控制器中基类的起着至关重要的作用,整个项目的代码安全,复杂程度,易读性都要看你项目的基类架构 ...
- 爬虫4:pdf页面+pdfminer模块+demo
本文介绍下pdf页面的爬取,需要借助pdfminer模块 demo一般流程: 1)设置url url = 'http://www.------' + '.PDF' 2)requests模块获取url ...
- Spring Boot2 系列教程(十五)定义系统启动任务的两种方式
在 Servlet/Jsp 项目中,如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( ...
- CF991D Bishwock
CF991D Bishwock 题目描述 给一个$2\times n$的网格,上面一些位置以及被覆盖上了.现在你有一种形状为L的小块,每个由三个小格组成,构成L型 现在问你,当前的网格最多还能摆多少小 ...
- POJ 3295 Tautology(构造法)
题目网址:http://poj.org/problem?id=3295 题目: Tautology Time Limit: 1000MS Memory Limit: 65536K Total Su ...
- 13.多级代理下Nginx透传真实IP
1.基于代理(七层负载均衡)情况下 透传客户端的真实IP 环境: 10.0.0.5 proxy_node1 一级代理 10.0.0.6 proxy_node2 二级代理 10.0.0.7 proxy_ ...
- MongoDB系列---入门安装操作
MongoDB 学习大纲: 1.MongoDB简介与其它数据库对比以及数据类型 2.MongoDB安装 3.MongoDB简单操作 环境要求: Linux 一.MongoDB简介 1 什么是Mongo ...