1. if单分支

public class TestIf01{
public static void main(String[] args){
// 对三个数(1-6) 求和
int num1 = 6;
int num2 = 6;
int num3 = 5; int sum = 0;
sum += num1;
sum += num2;
sum += num3; System.out.println("总和:"+sum); // >=14 一等奖
// >=10 二等奖
// >=6 三等奖
// < 四等奖 if (sum>=14){
System.out.println("一等奖");
} if (sum<14&&sum>=10){
System.out.println("二等奖");
} if (sum<10&&sum>=6){
System.out.println("三等奖");
}
if (sum<6){
System.out.println("四等奖");
}
}
}

2. if else 多分支

public class TestIf02{
public static void main(String[] args){
// 对三个数(1-6) 求和
int num1 = 6;
int num2 = 6;
int num3 = 5; int sum = 0;
sum += num1;
sum += num2;
sum += num3; System.out.println("总和:"+sum); // >=14 一等奖
// >=10 二等奖
// >=6 三等奖
// <6 四等奖 if (sum>=14){
System.out.println("一等奖");
}else if(sum>=10){//默认隐含了<14的条件
System.out.println("二等奖");
}else if(sum>=6){
System.out.println("三等奖");
}else{//注意这里不写if 默认隐含了<6的条件
System.out.println("四等奖");
} }
}

3. if else双分支

可以改成 ?:结构

public class TestIf03{
public static void main(String[] args){
// 对三个数(1-6) 求和
int num1 = 6;
int num2 = 6;
int num3 = 5; int sum = 0;
sum += num1;
sum += num2;
sum += num3; System.out.println("总和:"+sum); // >=10 中奖
// <10 没中奖 if (sum>=10){
System.out.println("中奖"); }else{
System.out.println("没中奖");
} System.out.println(sum>=10?"中奖":"没中奖");
}
}

4. 随机生成一定区间的整数

	random   --> [0.0, 1.0)
*6 --> [0.0, 6.0)
int --> [0, 5]
+1 --> [1, 6] (int)(Math.random()*6) +1 随机生成 32--68之间的一个数
68-32=36 random --> [0.0, 1.0)
*35 --> [0.0, 35.0)
int --> [0, 34)
+32 --> [32, 68) (int)(Math.random()*35) +32
public class TestIf04{
public static void main(String[] args){ // 随机生成三个数(1-6) 求和
int num1 = (int)Math.random()*6 +1;
System.out.println("num1: "+num1); int num2 = (int)(Math.random()*6) +1;
System.out.println("num2: "+num2); int num3 = (int)(Math.random()*6) +1;
System.out.println("num3: "+num3); int sum = 0;
sum += num1;
sum += num2;
sum += num3; System.out.println("总和:"+sum); // >=10 中奖
// <10 没中奖 if (sum>=10){
System.out.println("中奖"); }else{
System.out.println("没中奖");
} }
}

练习1

import java.util.Scanner;

public class TestIf05{
public static void main(String[] args){
//输入积分
Scanner sc = new Scanner(System.in);
System.out.println("请输入积分:"); if (sc.hasNextInt()==true){
int score = sc.nextInt();
System.out.println("输入积分是:"+score); if (score>=0){
//判断折扣
double discount = 0;
if (score>=8000){
discount = 0.6;
}else if(score>=4000){
discount = 0.7;
}else if(score>=2000){
discount = 0.8;
}else{
discount = 0.9;
}
System.out.println("折扣:"+discount);
}else{
System.out.println("输入积分不能为负数!");
} }else{
System.out.println("输入积分不合法");
} }
}

练习2;

小朋友搬桌子:

年龄大于7岁,可以搬桌子;

如果年龄大于5岁,性别是男,可以搬桌子;

否则不可以搬动桌子,提示:你还太小了

逻辑分析:

  1. 年龄大于7 男孩女孩都能搬
  2. 年龄小于5 都不能
  3. 年龄 5--7之间 只有男孩才能搬
import java.util.Scanner;

public class TestIf06{
public static void main(String[] args){ Scanner sc = new Scanner(System.in);
System.out.println("请输入年龄:"); int age = sc.nextInt();
if(age>7){
System.out.println("yes");
}else if(age>5){
System.out.println("请输性别 男--1 女--0");
int sex = sc.nextInt();
if(sex==1){
System.out.println("yes");
}else{
System.out.println("no");
}
}else{
System.out.println("no");
}
}
}

import java.util.Scanner;

public class TestIf06{
public static void main(String[] args){ Scanner sc = new Scanner(System.in);
System.out.println("请输入年龄:"); int age = sc.nextInt();
if(age>7){
System.out.println("yes");
}else if(age>5){
System.out.println("请输性别: 男 女");
String input = sc.next();
char sex = input.charAt(0);
if(sex=='男'){
System.out.println("yes");
}else{
System.out.println("no");
}
}else{
System.out.println("no");
}
}
}

5 switch语句

            实现一个功能:
根据给出的学生分数,判断学生的等级:
>=90 -----A
>=80 -----B
>=70 -----C
>=60 -----D
<60 -----E
import java.util.Scanner;

public class TestIf07{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入分数:"); int score = sc.nextInt();
/*
if (score>=90){
System.out.println("A");
}else if(score>=80){
System.out.println("B");
}
*/
switch(score/10){
case 10:System.out.println("A");break;
case 9:System.out.println("B");break;
case 8:System.out.println("C");break;
case 7:System.out.println("D");break;
case 6:System.out.println("E");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
default:System.out.println("成绩输入错误"); }
/*
【4】为了防止代码的“穿透”效果:在每个分支后面加上一个关键词break,遇到break这个分支就结束了
【5】类似else的“兜底”“备胎”的分支:default分支
*/
}
}

6. while循环

引入:

public class TestWhile01{
public static void main(String[] args){ // 实现1+2+3+4+5 int num = 1;
int sum = 0; sum += num; //0+1 num++;//2
sum += num; //0+1+2 num++;//3
sum += num; //0+1+2+3 num++;//4
sum += num; //0+1+2+3+4 num++;//5
sum += num; //0+1+2+3+4+5 System.out.println("sum:"+sum); }
}

循环4要素:

public class TestWhile02{
public static void main(String[] args){ // 实现1+2+3+4+5 int num = 1;//[1]初始化
int sum = 0; while(num<=5){//[2]条件判断 sum+=num;//[3]循环体
num++;//[4]迭代
}
System.out.println("sum:"+sum);
}
}

[1]四要素:条件初始化 条件判断 循环体 迭代

[2]执行过程 [1][2][3][4]-->[2][3][4]-->[2][3][4]...

[3]详细过程

num=1, sum=0

准备开始执行第一次循环,判断num<=5-->true--{}执行:sum:1,num:2,第一次循环结束

准备开始执行第二次循环,判断num<=5-->true--{}执行:sum:1+2,num:3,第二次循环结束

准备开始执行第三次循环,判断num<=5-->true--{}执行:sum:1+2+3,num:4,第三次循环结束

准备开始执行第四次循环,判断num<=5-->true--{}执行:sum:1+2+3+4,num:5,第四次循环结束

准备开始执行第五次循环,判断num<=5-->true--{}执行:sum:1+2+3+4+5,num:6,第四次循环结束

准备开始执行第六次循环,判断num<=5-->false--{}不执行,循环结束,

练习:

【1】1+2+3+4+5+。。。。+100

【2】2+4+6+8+。。。。+998+1000

【3】5+10+15+20+。。。+100

【4】99+97+95+。。5+3+1

【5】135791113

public class TestWhile03{
public static void main(String[] args){ //【1】1+2+3+4+5+。。。。+100 int i = 1;
int sum = 0;
while(i<=100){
sum +=i;
i++;
}
System.out.println("结果:"+sum); //【2】2+4+6+8+。。。。+998+1000
i = 2;
sum = 0;
while(i<=100){
sum +=i;
i+=2;
}
System.out.println("结果:"+sum); //【3】5+10+15+20+。。。+100
i = 15;
sum = 0;
while(i<=100){
sum +=i;
i+=5;
}
System.out.println("结果:"+sum); //【4】99+97+95+。。5+3+1
i = 99;
sum = 0;
while(i>=1){
sum+=i;
i-=2;
}
System.out.println("结果:"+sum); //【5】1*3*5*7*9*11*13 i = 1;
sum = 1;
while(i<=13){
sum*=i;
i+=2;
}
System.out.println("结果:"+sum); }
}

do-while循环

使用场景: 先要考试 等出了结果 才知道要不要参加下一次考试

循环体 先要执行一遍 再去判断条件

--条件true 继续进入下一次循环

--条件false退出循环

do{考试
}while(通过
)

7. for循环

for(条件初始化;条件判断;迭代){

循环体

}

public class TestFor01{
public static void main(String[] args){
// 1+2+3+4+5
int sum = 0; for(int i=0;i<=5;i++){
sum+=i;
} System.out.println("sum:"+sum);
}
}

8. break continue return关键字的使用

8.1 break 退出循环

练习:

public class TestFor02{
public static void main(String[] args){
// 求和 1—+2+3...+100 当和第一次超过300时退出循环
int sum = 0; for(int i=0;i<=100;i++){
sum+=i; if(sum>300){
break;
}
System.out.println("sum:"+sum); } }
}
public class TestFor03{
public static void main(String[] args){
// 求和 1—+2+3...+100 当和i=36退出循环
int sum = 0; for(int i=0;i<=100;i++){
sum+=i; System.out.println("i:"+i);
if(i==36){//如果改成while
break;
} } }
}
public class TestFor03{
public static void main(String[] args){
// 求和 1—+2+3...+100 当和i=36退出循环
int sum = 0; for(int i=0;i<=100;i++){
sum+=i; System.out.println("i:"+i);
while(i==36){
break;// 注意这里只会break while循环 for循环不受影响
} } }
}

结果:0-100全部打印

break的打标签使用

public class TestFor04{
public static void main(String[] args){
// 求和 1—+2+3...+100 当和i=36退出循环
int sum = 0; outer: //给这个for循环打标签
for(int i=0;i<=100;i++){
sum+=i; System.out.println("i:"+i);
while(i==36){
break outer; //根据标签停止
} } }
}

结果:只输出 0-36

8.2 continue 退出本次迭代

1-->100输出能被6整除的数

public class TestFor05{
public static void main(String[] args){
// 1 2 3...100 只输出能被6整除的数
int sum = 0; outer: //给这个for循环打标签
for(int i=0;i<=100;i++){
sum+=i; if(i%6==0){
System.out.println("i:"+i);
} } }
}

方式2;不能被6整除的就continue 不打印

public class TestFor05{
public static void main(String[] args){
// 1 2 3...100 只输出能被6整除的数
int sum = 0; outer: //给这个for循环打标签
for(int i=0;i<=100;i++){
sum+=i; if(i%6!=0){
continue;
}
System.out.println("i:"+i); }
}
}
public class TestFor06{
public static void main(String[] args){
// 1 2 3 100 当和i=36 continue
int sum = 0; for(int i=0;i<=100;i++){
sum+=i; if(i==36){
continue;
} System.out.println("i:"+i);
} }
}

结果: 36没打印出来

public class TestFor06{
public static void main(String[] args){
// 1 2 3 100 当和i=36 continue
int sum = 0; for(int i=0;i<=100;i++){
sum+=i; while(i==36){
System.out.println("---->i:"+i);
continue;
} System.out.println("i:"+i);
} }
}

结果: 0-35打印出来 36死循环

8.3 return 退出方法的执行

public class TestFor06{
public static void main(String[] args){
// 1 2 3 100 当和i=36 return
int sum = 0; for(int i=0;i<=100;i++){
sum+=i; if(i==36){
System.out.println("-----");
return;
} System.out.println("i:"+i);
} }
}

结果:0-35打印 36只打印--- 退出

9. 练习

9.1 打印1-100能被5整除的数 每行输出6个数

public class TestFor07{
public static void main(String[] args){
// 打印1-100能被5整除的数 每行输出6个数
int count= 0;
for(int i=1;i<=100;i++){
if(i%5==0){
System.out.print(i+"\t");
if (count%6==0){
System.out.println();
}
count++;
}
}
}
}

9.2 练习

import java.util.Scanner;

public class TestFor08{
public static void main(String[] args){
/*
【1】请录入10个整数,当输入的数是666的时候,退出程序--(被迫退出)。
【2】判断其中录入正数的个数并输出。
【3】判断系统的退出状态:是正常退出还是被迫退出。
*/ boolean flag=true;//默认正常退出 int count = 0;
for(int i=1;i<=10;i++){
Scanner sc = new Scanner(System.in);
System.out.println("请第"+i+"次输入整数:");
int num = sc.nextInt();
if(num>0){
count++;
}
if(num==666){
//System.out.println("被迫退出");
flag = false;
break;
}
}
System.out.println("正数的个数:"+count);
System.out.println(flag?"正常退出":"被迫退出");
}
}

9.3 打印乘法口诀

public class TestFor09{
public static void main(String[] args){ for(int j=1;j<=9;j++){
// 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
for(int i=1;i<=j;i++){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
} for(int j=9;j>=1;j--){
// 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
for(int i=1;i<=j;i++){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}

9.4 打印各种形状

打印 49 由组成的正方形

public class TestFor10{
public static void main(String[] args){ for(int j=1;j<=4;j++){
for(int i=1;i<=9;i++){
System.out.print("*");
}
System.out.println();
} }
}

前面有5个空格

public class TestFor10{
public static void main(String[] args){ for(int j=1;j<=4;j++){ for(int i=1;i<=5;i++){
System.out.print(" ");
} for(int i=1;i<=9;i++){
System.out.print("*");
}
System.out.println();
} }
}

打印平行四边形

public class TestFor10{
public static void main(String[] args){
/* 空格数
********* 5
********* 4
********* 3
********** 2
*/ for(int j=1;j<=4;j++){ for(int i=1;i<=6-j;i++){
System.out.print(" ");
} for(int i=1;i<=9;i++){
System.out.print("*");
}
System.out.println();
} }
}

三角形

public class TestFor11{
public static void main(String[] args){
/* *个数 行数
* 1 1
*** 3 2
***** 5 3
******* 7 4
*/ for(int j=1;j<=4;j++){ for(int i=1;i<=6-j;i++){
System.out.print(" ");
} for(int i=1;i<=2*j-1;i++){
System.out.print("*");
}
System.out.println();
} }
}

棱形

public class TestFor12{
public static void main(String[] args){
/* *个数 行数 空格
* 1 1
*** 3 2
***** 5 3
******* 7 4 ***** 5 1 3
*** 3 2 4
* 1 3 5
j 7-2*j
*/ for(int j=1;j<=4;j++){ for(int i=1;i<=6-j;i++){
System.out.print(" ");
} for(int i=1;i<=2*j-1;i++){
System.out.print("*");
}
System.out.println();
}
for(int j=1;j<=3;j++){
for(int i=1;i<=j+2;i++){
System.out.print(" ");
} for(int i=1;i<=7-2*j;i++){
System.out.print("*");
}
System.out.println();
} }
}

空心棱形

public class TestFor12{
public static void main(String[] args){
/* *个数 行数 空格
* 1 1
*** 3 2
***** 5 3
******* 7 4 ***** 5 1 3
*** 3 2 4
* 1 3 5
j 7-2*j
*/ for(int j=1;j<=4;j++){ for(int i=1;i<=6-j;i++){
System.out.print(" ");
} for(int i=1;i<=2*j-1;i++){ if(i==1||i==(2*j-1)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
for(int j=1;j<=3;j++){
for(int i=1;i<=j+2;i++){
System.out.print(" ");
} for(int i=1;i<=7-2*j;i++){
if(i==1||i==(7-2*j)){
System.out.print("*");
}else{
System.out.print(" ");
} }
System.out.println();
} }
}

10. 打印菱形的另外一种方式

待补充

11. 百钱买百鸡

待补充

java基础-流程控制-day04的更多相关文章

  1. Java基础-流程控制(04)

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...

  2. java基础 流程控制和条件语句,循环语句

    顺序结构 程序的顺序结构: 如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的, 一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束. if语句 if语句使用bo ...

  3. java 基础 流程控制

    鄙人不才,基础不好,趁着闲时简单学习一下,仅作学习分享,如有不正确地方还请各位看客不吝指出. Java流程主要可以分为: 顺序(可以按照正常顺序一步步往下运行的) 选择(三元操作符[?:];if el ...

  4. Java编程基础——流程控制

    Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...

  5. Java的流程控制和C++的异同

    Java的流程控制和C++基本相似 现将不同的地方总结一下,以便快速掌握. Java的特殊流程控制的特殊部分: 1.顺序结构  -- 没有区别 2.分之结构  -- 没有区别 3.循环结构 1> ...

  6. 小白学 Python(8):基础流程控制(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  7. Java学习--流程控制

    Java学习 流程控制 用户交互Scanner Scanner对象 Java通过Scanner类获取用户的输入 基本语法: Scanner scanner = new Scanner(System.i ...

  8. Java程序流程控制之if-else if-else

    java基础之流程控制(一)    流程控制 Flow Control :       流程控制语句是编程语言中的核心之一.可以分为 分支语句.循环语句和跳转语句.        本讲内容包括分支语句 ...

  9. 黑马程序员——C语言基础 流程控制 选择结构和循环结构

    ---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...

  10. Python基础—流程控制

    一.Python流程控制 计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句.选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的三种程序执行结构流程:顺序结构.选择结构和循 ...

随机推荐

  1. 容器网络Cilium:DualStack双栈特性分析

    本文分享自华为云社区<容器网络Cilium入门系列之DualStack双栈特性分析>,作者: 可以交个朋友. 一 . 关于IPV6/IPV4 双栈 目前很多公司开始将自己的业务由ipv4切 ...

  2. Http请求超好用的工具类

    话题不多说,直接开整 1.先导入依赖 <dependency> <groupId>io.github.admin4j</groupId> <artifactI ...

  3. 解析$nextTick魔力,为啥大家都爱它?

    1.为什么需要使用$nextTick? 首先我们来看看官方对于$nextTick的定义: 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 由于vu ...

  4. 【笔记整理】使用Session会话保持

    import requests if __name__ == '__main__': # Session对象实现了客户端和服务器端的每次会话保持功能. session = requests.Sessi ...

  5. 使用nginx搭建creates.io镜像(稀疏索引)

    在Rust开发中,经常需要使用Cargo从crates.io下载依赖,而国内几乎没有好用的crates.io镜像,大多都只对crates.io-index和crates.io进行了镜像,而最重要的st ...

  6. 数字孪生和GIS融合:激发数字孪生技术的进步潜力

    数字孪生技术和地理信息系统(GIS)的融合,为数字孪生领域带来了巨大的进步和创新.这种强大的联合不仅扩展了数字孪生技术的应用领域,还提供了更全面.更精确的数据支持,从而推动了数字孪生技术的发展和应用. ...

  7. thymeleaf使用

    thymeleaf使用 1.依赖 <parent> <artifactId>spring-boot-starter-parent</artifactId> < ...

  8. ASR项目实战-后处理

    本文深入探讨后处理环节. 在本环节要处理的重要特性有分词.断句.标点符号.大小写.数字等的格式归一等. 分词 和NLP.搜索等场景下的分词含义不同.对于拼音类的语言,比如英语.法语等,句子由多个单词组 ...

  9. Windows Server 2008 R2 & Windows Server 2012 R2 无法通过update更新的解决方法

    windows Server 2008 r2 无法通过update更新的解决方法 注意:目前windows Server系列操作系统已经完全停止支持. 1.安装 SP1补丁 KB976932 点击:微 ...

  10. 在Linux上部署.net Core 步骤以及遇到的一些问题

    Linux安装部署手册 一.安装.NET Core SDK centos 7 系统命令为: sudo rpm -Uvh https://packages.microsoft.com/config/ce ...