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. 开源不挣钱?这个项目上线半年月入超 30w

    很兴奋的告诉大家,Sealos 自从 6 月份上线以来,仅半年时间注册用户已经突破 7万,月收入超过 30w,本文来向大家介绍我们是怎么做开源商业化的.每月平均增速超过 40%,而且这些收入大部分来自 ...

  2. 【C++】关于全局变量和局部变量问题

    1 #include <iostream> 2 using namespace std; 3 4 void func(void); 5 6 static int count = 10; 7 ...

  3. Windows系统激活工具HK

    下载:https://wwsi.lanzoum.com/iyUNn10e7foh 密码:g05d GitHub开源 .无毒 原文链接:https://github.com/zbezj/HEU_KMS_ ...

  4. 高版本jdk的访问私有成员属性的正确姿势

    在jdk17+已经不能直接通过 setAccessible 来访问私有属性了 Field name = access.getClass().getDeclaredField("name&qu ...

  5. 11、层叠布局(Stack、Align、 Positioned)

    Flutter Stack组件 Stack表示堆的意思,我们可以用Stack或者Stack结合Align或者Stack结合 Positiond来实现页面的定位 布局  Alignment(对齐)类是用 ...

  6. 解惑“高深”的Kafka时间轮原理,原来也就这么回事!

    [摘要] Kafka时间轮是Kafka实现高效的延时任务的基础,它模拟了现实生活中的钟表对时间的表示方式,同时,时间轮的方式并不仅限于Kafka,它是一种通用的时间表示方式,本文主要介绍Kafka中的 ...

  7. 看华为云Serverless 4大特性如何让软件架构更丝滑

    摘要:Serverless可以看作是一种云计算服务模型,它允许开发者在不需要管理服务器的情况下通过事件驱动的方式运行应用代码. 软件架构的发展从原先的单体架构到近十几年的微服务架构,再到现在新兴的Se ...

  8. 50亿海量数据如何高效存储和分析? GaussDB (for Cassandra) 3个秘诀搞定

    摘要:信息社会正在从互联网时代走向物联网时代,企业不可避免的要面对数据量剧增带来的一系列问题:如何高效存储和扩容,如何在对原有业务改动最小的情况下做到智能化和实时分析. 本文分享自华为云社区<5 ...

  9. 教你如何用Keras搭建分类神经网络

    摘要:本文主要通过Keras实现了一个分类学习的案例,并详细介绍了MNIST手写体识别数据集. 本文分享自华为云社区<[Python人工智能] 十七.Keras搭建分类神经网络及MNIST数字图 ...

  10. 打通数据治理全链路,火山引擎DataLeap数据治理平台公有云版本正式发布

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   近日,火山引擎DataLeap正式对外发布数据治理平台公有云版.DataLeap是火山引擎大数据研发治理套件, ...