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

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. @ConfigurationProperties、@Value、@PropertySource

    @ConfigurationProperties(spring-boot依赖下).@Value(spring-beans依赖下).@PropertySource(spring-context依赖下) ...

  2. mac下的环境变量

    a. /etc/profile b. /etc/paths c. ~/.bash_profile d. ~/.bash_login e. ~/.profile f. ~/.bashrc 其中a和b是系 ...

  3. 并发编程之原子操作Atomic&Unsafe

    原子操作:不能被分割(中断)的一个或一系列操作叫原子操作. 原子操作Atomic主要有12个类,4种类型的原子更新方式,原子更新基本类型,原子更新数组,原子更新字段,原子更新引用.Atomic包中的类 ...

  4. Hyper-V 下linux虚拟机静态IP上网配置的两种方式(2)

    工作需要,搭建linux环境,网上搜了两种Hyper-V配置linux静态IP及上网的方式,记录一下,方便查阅,如下设置网络共享方式: win10下使用hyper-v在本机安装linux虚拟机后,网络 ...

  5. Java内存模型总结

    Java内存模型 内存模型可以理解为在特定的操作协议下,对特定的内存或者高速缓存进行读写访问的过程抽象,不同架构下的物理机拥有不一样的内存模型,Java虚拟机也有自己的内存模型,即Java内存模型(J ...

  6. Kubernetes集群的部署方式及详细步骤

    一.部署环境架构以及方式 第一种部署方式 1.针对于master节点 将API Server.etcd.controller-manager.scheduler各组件进行yum install.编译安 ...

  7. App元素定位

    1.元素定位(采用Appium-desktop自带的工具) 1.1将初始化参数复制进去校验json格式正确且保存后,点击start session 初始化参数来源如下: # 定义启动设备需要的参数 d ...

  8. C语言打印当前所在函数名、文件名、行号

    printf("[%s %s] %s: %s: %d\n", \ __DATE__, __TIME__, __FILE__, __func__, __LINE__); 内核驱动中: ...

  9. WeCenter3.1.7 blind xxe 分析

    xxe漏洞危害大,可以查看任意文件,执行系统命令,进行ddos等,但是本次漏洞有一条件,需要后台登录,所以危害降低了,下面是详细分析 在models/weixin.php public functio ...

  10. 电脑扫描不出u盘的解决办法

    现象:u盘已插上但是设备和驱动器里却找不到 解决办法: 首先记下u盘名称,然后 我的电脑-右键-管理-设备管理器,找到u盘,卸载设备后重新插入u盘即可