大数据之路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下载、安装等配置
从今天开始,我就正式的走上大数据的道路了,如果说我为啥要去学习大数据,可能我的初衷是以后可以接触到人工智能方面的技术,后来在自学的过程中发现,学习人工智能,需要扎实的算法,以及对大量数据的处理,再者, ...
随机推荐
- oracle表空间不足:ORA-01653: unable to extend table
问题背景: oracle表空间不足报错是比较常见的故障,尤其是没有对剩余表空间做定期巡检的系统: 报错代码如下: oracle表空间不足错误代码:ORA-01653: unable to extend ...
- 从0开始学FreeRTOS-(列表与列表项)-3
# FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像. 在`FreeRTOS`中,列表与列表项使用得非常多 ...
- 从xxe-lab来深入学习xxe漏洞
这几天,想复习一下xxe的知识,于是把以前的一个靶场拿过来玩玩,顺便审计一下代码2333,靶场地址:https://github.com/c0ny1/xxe-lab 首先先练习的是php-xxe: 我 ...
- Python_MySQL数据库的写入与读取
[需求]1. 在数据库中创建表,且能按时间自动创建新表 2. 数据写入数据库 3. 从数据库读取数据 1. 创建表,并自动更新 def Creat_Table(InitMySQL,tabel_name ...
- 零基础:如何快速学习JavaScript,html+css技术
前端开发要学的知识内容涉及的会很宽泛,虽然说主要是HTML.CSS和JavaScript这些基础知识点,但达妹今天想强调一下,学前端开发除了要学这些基础知识外,学员还要在这之上进行延伸和深入的去学,而 ...
- 机器学习:IB1算法的weka源码详细解析(1NN)
机器学习的1NN最近邻算法,在weka里叫IB1,是因为Instance Base 1 ,也就是只基于一个最近邻的实例的惰性学习算法. 下面总结一下,weka中对IB1源码的学习总结. 首先需要把 ...
- CDN实现原理
避让:尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定. 检测:通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时监 ...
- Cocos2d-x 学习笔记(11.1) MoveBy MoveTo
1. MoveBy MoveTo 两方法都是对node的平移,MoveBy是相对当前位置的移动.MoveTo是By的子类,是移动到世界坐标位置. 1.1 成员变量和create方法 MoveBy的主要 ...
- shell数组(四)
[root@ipha-dev71- exercise_shell]# cat test.sh #!/bin/bash my_array=(a b c d) echo "第一个元素为:${my ...
- 移动端真机调试--weinre
一.安装 首先确保你的电脑上有node环境,然后使用cnpm或npm 安装 windows下 npm install weinre -g --registry=https://registry.npm ...