day04逻辑运算符短路、多分支结构(if和switch)、循环结构、while循环
复习
1.运算符和表达式
1)表达式
2)算数运算符
+ - * / %
3)关系运算符
> < >= <= == !=
4)逻辑运算符
&& || !
5)字符串连接
+
6)赋值运算符
=
+= -= *= /= %=
int x=10;
x+=5;//x=x+5;
7)自增自减
++ --
int x=1;
int y=x++ ;
8)三目运算符(条件运算符)
int score=97;
int money= score>=90 ? 200 : 5;
2.分支结构
1)单分支
if(<条件>){
//条件为真时运行的代码
}
//无论条件真假都会运行的代码
2)双分支
if(<条件>){
//条件为真时运行的代码
}else{
//条件为假时运行的代码
}
//无论条件真假都会运行的代码
笔记
1.逻辑运算符的短路特性
&& ||
1)&&当左侧变量值为false时
右侧无论什么值,结果都为false
那么&&右侧就没必要运行了
2)||当左侧变量值为true时
右侧无论什么值,结果都为true
那么||右侧就没必要运行了
3)为什么会设计这样的特性
当根据第一个条件已经能判断出结果
时,就没必要运行第二个条件了
能提高运行的效率
2.多分支结构
1)一个条件触发的情况在3种或3种以上
2)多重if结构
小明考试成绩
>=90 优秀
>=80 良好
>=60 及格
<60 不及格
格式
if(<条件1>){
//条件1为真时运行
}else if(<条件2>){
//条件1为假,条件2为真时运行
}else if(<条件3>){
//条件1,2为假,条件3为真时运行
}else{
//条件1,2,3均为假时运行
}
1.else if的数量是不限的
2.else可以根据需要省略
3.每个结构的{}都可能省略
4.判断条件的顺序是要求的
3)switch结构
语法
switch(<整数表达式>){
case 1:
//当整数表达式值为1时运行的语句
break;
case 2:
//当整数表达式值为2时运行的语句
break;
.....
default:
//当整数表达式没有匹配值时运行
}
整数表达式
可以是byte\short\char\int
JDK1.7开始
可以编写字符串表达式,但是用处不大
break关键字
在switch结构中运行到break
会终止(跳出)swtich结构
语法上没有强制要求必须编写break
但是不编写break会出现case穿透现象
根据小明考试的名次,来获得奖励
1 苹果笔记本电脑
2 ipad
3 智能手表
4 智能音箱
其他名次: 没有奖励
3.多分支结构小结
1)多重if结构
特别适合于判断一个变量在
某个范围时的情况
2)switch结构
使用灵活,运行效率高
但是只能做等值判断
3)小结:等值判断使用switch
范围判断使用多重if
4.循环结构
1)什么是循环结构
编写的代码执行多次的情况
在程序中,反复的执行相同
或相似的代码
2)为什么要使用循环结构
减少代码冗余,提高程序的可维护性
3)怎么样使用循环
循环的要素
3.1)循环变量
3.2)循环条件
3.3)循环操作
3.4)变量更新
5.while循环
1)语法结构
while(<条件>){
//条件为真时运行的代码
}
代码整体缩进快捷键
Ctrl+A;
Ctrl+I;
作业
1)商场根据积分发不同类型的会员卡
>=5000 黑金卡
>=2000 铂金卡
>=1000 金卡
<1000 银卡
用户输入小红会员卡的积分
输出小红会员卡的类型
Scanner scan=new Scanner(System.in);
System.out.println("请输入小红的积分");
int point=scan.nextInt();
if(point>=5000) {
System.out.println("黑金卡");
}else if(point>=2000) {
System.out.println("铂金卡");
}else if(point>=1000) {
System.out.println("金卡");
}else {
System.out.println("银卡");
}
2)用户输入小红商场消费金额
>500元 8折
>100元 9折
>50元 95折
<=50元 不打折
输出实际消费的金额
Scanner scan=new Scanner(System.in);
System.out.println("输入小红的消费金额");
double money=scan.nextDouble();
if(money>500) {
money*=0.8;
}else if(money>100) {
money*=0.9;
}else if(money>50) {
money*=0.95;
}
System.out.println("消费金额为:"+money);
switch结构
1)食堂每天有特价菜
用户输入周几(1~7)
周1 ---- 黄焖鸡
周2 ---- 烤鸭
周3 ---- 酸菜鱼
周4 ---- 西红柿牛腩
周5 ---- 孜然羊肉
其他 ---- 没有特价菜
Scanner scan=new Scanner(System.in);
System.out.println("请输入周几");
int day=scan.nextInt(); switch(day) {
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;
default:
System.out.println("没有特价菜");
}
2)用户输入一个月份
输出这个月份有多少天
1,3,5,7,8,10,12 ----31天
4,6,9,11 ----30天
2 ----平年28天,闰年29天
Scanner scan=new Scanner(System.in);
System.out.println("请输入年份");
int year=scan.nextInt();
System.out.println("请输入月份");
int month=scan.nextInt();
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30天");
break;
case 2:
if(year%4==0 && year%100!=0 ||
year%400==0) {
System.out.println("29天");
}else {
System.out.println("28天");
}
}
循环结构
1)使用循环结构
向控制台输出1~200
int i=1;//循环变量
while(i<=200) {//循环条件
//循环操作
System.out.println("第"+i+"次,猥琐发育,别浪~");
i++;//变量更新
}
System.out.println("over");
2)使用循环结构
向控制台输出2~100之间的所有偶数
int i = 2;
while (i <= 100) {
if (i % 2 == 0) { System.out.println(i);
}
i++;
}
3)计算从1+2+3+4+5+...+99+100的和
这样的题我们称之为累加操作
只要需要累加的题目,
都要定义变量sum
int sum=0;
int i=1;
while(i<=100) {//sum:21 i:6
sum+=i;
i++;
}
System.out.println(sum);
4)计算1~100之间所有奇数的和
int sum = 0;
int i = 1;
while (i <= 100) { if (i % 2 != 0) {
sum += i;
System.out.println(i);
}
i++;
} System.out.println(sum);
5)小明上班第一个月工资4000
每个月比上个月工资涨200
计算输出12个月后小明 总共拿到了多少工资
int sum=0;// 累加和
int i=1;//表示月份
int sal=4000;//工资
while(i<=12) {
sum+=sal;
System.out.println("i:"+i+",sal:"+sal+",sum:"+sum);
sal+=200;
i++;
}
System.out.println(sum);
6)打印出1-100之间所有不是7的倍数
和不包含7的数字,并求和
i%7!=0 && i%10!=7 && i/10!=7
int sum = 0;
for (int i = 1; i <= 100; i++) {
if(i%7 ==0 || i%10 == 7 || i/10 == 7){//注意:70-79容易漏掉
continue;
}
sum += i;
}
System.out.println(sum);
7)4.3循环输入5个数,
输完后显示这些数中有没有负数
Scanner scan=new Scanner(System.in);
System.out.println("请输入5个数字");
int flag=0;//立旗
int i=1;
while(i<=5) {
int num=scan.nextInt();
if(num<0) {
flag=1;
}
i++;
}
if(flag==0) {
System.out.println("没有负数");
}else {
System.out.println("有负数");
}
day04逻辑运算符短路、多分支结构(if和switch)、循环结构、while循环的更多相关文章
- Java 8- Java 分支结构 - if…else/switch
Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构. Java有两种分支结构: if语句 switch语句 if语句 一个if语句包含 ...
- Java 分支结构 - if...else/switch
Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构. Java 有两种分支结构: if 语句 switch 语句 if 语句 一个 i ...
- 20180711-Java分支结构 – if…else/switch
public class Test{ public static void main(String args[]){ int x = 10; if(x<20){ System.out .prin ...
- C语言入门6-选择结构--f语句-switch
一. 什么是选择结构? 选择结构,也称为分支结构!! 选择结构就是根据 给定的判定条件,判断结果, 并根据 判断的结果 来控制程序的流程 (流程图中, 菱形框 是有来判断的 , ...
- 房上的猫:switch选择结构,与选择结构总结
switch选择结构: 一.定义: switch选择结构,可以方便地解决等值判断问题二.语法: switch(表达式){ case 常量1: //代码块1; break; c ...
- java中的结构--switch选择结构
if-switch 选择结构 switch结构可以更好的解决等值判断问题switch 选择结构的语法:switch (表达式){ case 常量 1: //代码块1: break; case 常量 2 ...
- 选择结构二switch选择结构
在上一章节我们讲解了if选择结构 本章我们学习 switch选择结构 还要知道if选择结构和switch结构的区别 为什么学习了if选择结构还要学习switch选择结构 以及 两种选择结构的运用 ...
- JAVA基础语法:常用功能符以及循环结构和分支结构(转载)
3.JAVA基础语法:常用功能符以及循环结构和分支结构 1.常用功能符 注释 ("文字"是被注释的部分) //文字 单行注释 /文字/ 多行注释 算术运算符 + - * / / 整 ...
- Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...
随机推荐
- 利用Spring AOP的通知类型以及创建通知
写在最前端 1.SpringAOP中共有六种通知类型,只要我们自定义一个类实现对应的接口,它们全都是org.springframework.aop包中的. 2.AOP的连接点可以是方法调用.方法调用本 ...
- Go语言冒泡、选择、插入、快速排序实战浅析
Hello,各位小伙伴大家好,我是小栈君,今天为大家带来的分享是关于go语言中的排序实战浅析. 我们就实际操作关于go的冒泡排序.选择排序.插入排序和快速排序四种方式的理论和实战进行分享,希望能够为大 ...
- su命令、sudo命令、限制root远程登录 使用介绍
第3周第3次课(4月4日) 课程内容:3.7 su命令3.8 sudo命令3.9 限制root远程登录 3.7 su命令 [root@jimmylinux-002 ~]# su - jimmy ...
- Nginx 配置整理
链接:nginx配置详细解析 1. C10k问题:无法同时并发超过(1w)客户端请求而出现的问题. nginx默认配置超过1w并发: 2.配置文件conf/nginx.conf (1)user www ...
- 上传一个项目到GitHub
在github上创建hello的仓库 上传本地项目文件 echo "# hello" >> README.md git init git add README.md g ...
- 2019-2020-1 20199304《Linux内核原理与分析》第三周作业
1.操作系统是如何工作的? 计算机三个法宝(3个关键性的方法机制): 存储程序计算机.函数调用堆栈.中断机制. 1.1堆栈: 在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构.堆栈都是一种数 ...
- C#开发安卓自学笔记1
今天开始研究了下C#开发安卓,刚开始什么都不懂,学过安卓的同学们也是用Java开发的,虽然两者开发差别不大,但是还是有差别的 // Set our view from the "main&q ...
- 用Java编程语言对一个无序整形数组进行排序(冒泡排序,选择排序,插入排序)
public static void main(String[] args) { /** * 冒泡排序 * 思路:每个轮次都让第一个数和其后所有的数进行轮比较,如果这轮的第一个数大则和其下一个数交换位 ...
- Codeves-5037线段树4加强版(线段树? 。。。分块)
维护一个序列,要求支持下列2种操作: add a b c:区间[a,b]中每个数加上c count a b:查询区间[a,b]中有多少数是k的倍数(k为给定常数) 输入描述 Input Descrip ...
- 微信小程序使用pako.js的踩坑笔记
问题 今天组长跟我们讨论了个问题,说是文章存储占用有点大,消耗宽带流量费,让我看看能不能找个方法解决一下(文章存储的是html字符串).第一反应是没什么头绪,能想到的就是将相同的字符串替换成一个标识之 ...