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. 【UniApp】-uni-app-路由

    前言 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-CompositionAPI应用生命周期和页面生命周期 那么了解完了uni-app-CompositionAPI应用生命周期和页面生命 ...

  2. Logistics Regression (对数几率回归)及numpy实现

    Logistics Regression 我们知道线性回归模型可以处理回归问题,但是如何处理分类问题? 对于一个二分类问题,或许我们可以认为w*x+b > 0为正类,其他情况为负类. 那么模型不 ...

  3. 华企盾DSC无缝替换亿赛通案例

    第一种方法无缝替换亿赛通案例 1. 把DSCClient.exe和DSCService.exe添加到亿赛通的加密控制策略中,关联类型设置为*.*|,配置为落地自动解密,包括其它程序也配置成落地自动解密 ...

  4. pytest框架学习-fixture

    一.fixture是什么 被@pytest.fixture()装饰器装饰的函数就是一个fixture,fixture可以灵活的为不同范围的测试用例提供前置和后置操作,以及向测试用例传递测试数据. 二. ...

  5. 【scikit-learn基础】--『监督学习』之 逻辑回归分类

    逻辑回归这个算法的名称有一定的误导性.虽然它的名称中有"回归",当它在机器学习中不是回归算法,而是分类算法.因为采用了与回归类似的思想来解决分类问题,所以它的名称才会是逻辑回归. ...

  6. gentoo安装gcc出现error: C compiler cannot create executables

    安装程序  systemd 过程中,出现了error: C compiler cannot create executables 这类错误,经过检查,由于没有配置本地编译器的结果. 输入命令如下: g ...

  7. 你真的会用 npx 吗❓❓❓

    Hello,大家好! 日常开发中大家应该经常使用 npm install xxx 来安装包依赖,那是否注意到npm升级到 npm@5.2.0 之后,在 npm 二进制命令旁边安装了一个 npx 二进制 ...

  8. 《华为云DTSE》期刊2023年第二季—HDC.Cloud 2023专刊

    本文分享自华为云社区<<华为云DTSE>期刊2023年第二季-HDC.Cloud 2023专刊>,作者: HuaweiCloudDeveloper . AI技术风起云涌,百家争 ...

  9. 还在手动发早安吗?教你用java实现每日给女友微信发送早安

    摘要:教你如何用java实现每日给女友微信发送早安等微信信息. 本文分享自华为云社区<java实现每日给女友微信发送早安等微信信息>,作者:穆雄雄 . 前言 据说这个功能最近在抖音上很火, ...

  10. 利用Appuploader上架IPA步骤

      Appuploader可以辅助在Windows.linux或mac系统直接申请iOS证书p12,及上传ipa到App Store.方便在没有苹果电脑情况下上架IPA操作. 一.下载安装iOS上架辅 ...