Java控制结构

控制结构

  • 程序流程控制介绍

在这里插入图片描述

顺序控制

在这里插入图片描述

分支控制if-else

单分支

在这里插入图片描述

案例演示

在这里插入图片描述

01:

import java.util.Scanner;
public class IfWorkDemo
{public static void main(String[] args){Scanner myScanner = new Scanner(System.in);System.out.println("input your age");int age = myScanner.nextInt();if (age > 18){System.out.println("Your age beyond 18 ,you shoule  be responsible  to your action ");}}
}

流程图

在这里插入图片描述

双分支

在这里插入图片描述

案例演示

在这里插入图片描述

01:

import java.util.Scanner;
public class IfWorkDemo01
{public static void main(String [] args){Scanner myScanner = new Scanner(System.in);int age = myScanner.nextInt();System.out.println("input your age");if (age > 18){System.out.println("Your age beyond 18 ,you shoule  be responsible  to your action ")}else{System.out.println("You are not old no enough to let you off this time");}}
}

流程图

在这里插入图片描述

单分支和双分支练习题

01:

public class PracticeWorkDemo
{public static void main(String [] args){int x = 7;int y = 4;if (x > 5){if (y > 5){System.out.println(x+y);}System.out.println("okokok");}else{System.out.println("x is "+x);}}
}

OUTPUT:

okokok

在这里插入图片描述

02:

public class IfWorkDemo
{public static void main(String[] args){double d1 = 34.5;double d2 = 2.6;if (d1 > 10.0 && d2 < 20.0){System.out.println("两个数之和 = "+(d1+d2);}}
}

03:

public class SumWorkDemo
{public static void main(String[] args){int num1 = 10;int num2 = 5;int sum = num1+num2;if (sum % 3==0 && sum % 5==0){System.out.println("ok");}else{System.out.println("no");}}
}

04:

import java.util.Scanner;
public class YearWorkDemo
{public static void main(String[] args){Scaneer myYear = new Scanner(System.in);int year = myYear.nextInt();if ((year %4==0 && year %100 !=0 )|| year %400 ==0){System.out.println("ok");}else{System.out.println("no");}}
}

多分支

在这里插入图片描述

流程图

在这里插入图片描述

案例演示

在这里插入图片描述

import java.util.Scanner;
public class MaWorkDemo
{public static void main(String[] args){Scanner myScanner = new Scanner(System.in);int score = myScanner.nextInt();if (score >= 1 && score <= 100){   if (score == 100){System.out.println("信用极好");}else if (score > 80 && score <= 99){System.out.println("信用优秀");}else if (score >=60 && score <= 80){System.out.println("信用一般");}else{System.out.println("信用不及格");}}else{System.out.println("Input is Error");}}
}

小练习

01:

boolean b = true;
if (b==false)
{System.out.println("a");
}
else if (b)
{System.out.println("b");
}
else if (!b)
{System.out.println("c");
}
else 
{System.out.println("d");
}//output = b

02:

boolean b = true;
if (b=false)
{System.out.println("a");
}
else if (b)
{System.out.println("b");
}
else if (!b)
{System.out.println("c");
}
else 
{System.out.println("d");
}//output = c

嵌套分支

在这里插入图片描述

应用案例

在这里插入图片描述

01:

import java.util.Scanner;
public class MatchWorkDemo
{public static void main(String [] args){Scanner myScanner = new Scanner(System.in);System.out.println("Please input score");double score = myScanner.nextDouble();if (score > 8.0){System.out.println("Please input gender");char gender = myScanner.next().charAt(0);if (gender == '男'){System.out.println("Enter the men's division");}else if (gender== '女'){System.out.println("Enter the women's division");}else {System.out.println("Input Error");}}else{System.out.println("cup tie");}}
}

在这里插入图片描述

代码略。

switch分支结构

在这里插入图片描述

流程图

在这里插入图片描述

案例演示

在这里插入图片描述

01:

import java.util.Scanner;
public class SwitchWorkDemo
{public static void main(String[] args){Scanner myScanner = new Scanner(System.in);System.out.println("Please input a-g");char c1 = myScanner.next().charAt(0);switch(c1){case 'a':System.out.println("Today is monday");break;case 'b':System.out.println("Today is Tuesday");break;case 'c':System.out.println("Today is Wednesday");break;//......default :System.out.println("Input Error");}}
}

细节讨论

在这里插入图片描述

  • 表达式数据类型,应和case后的常量类型一致,或者是可以自动转成相互比较的类型,比如输入的是字符,而常量是int

01:

public class SwitchWorkDemo
{public static void main(String[] args){char c = 'a';switch(c){case 'a':System.out.println("ok1");break;//correct char -> int case 20:System.out.println("ok2");break;//error String 无法转成 charcase 'hello':System.out.println("ok3");break;default:System.out.println("ok4");}}
}

02:

public class SwitchWorkDemo
{public static void main(String[] args){String  c = "a";switch(c){case "b":System.out.println("ok1");break;case "20":System.out.println("ok2");break;//error String 无法转成 intcase 20:System.out.println("ok3");break;default:System.out.println("ok4");}}
}
  • switch(表达式)中表达式的返回值必须是(byte,short,int,char,enum[枚举],String)

01:

public class SwitchWorkDemo
{public static void main(String[] args){double c = 1.1;switch(c){//error switch(表达式)中表达式的返回值必须是(byte,short,int,char,enum[枚举],String)case 1.1:System.out.println("ok1");break;default:System.out.println("ok2");}}
}
  • case子句中的值必须是常量(1,‘a’)或者是常量表达式,而不能是变量
 class SwitchWork
{public static void main(String[] args){char c = 'a';char c2 = 'c';switch(c){//error case子句中的值必须是常量(1,'a')或者是常量表达式,而不能是变量case c2:System.out.println("ok");break;default:System.out.println("ok2");}}
}
  • default是可选的,就是说,可以没有default。如果没有default子句,有没有匹配任何常量,则没有输出

  • break语句用来在执行完一个case分支后使程序跳出switch语句块,如果没有写break,程序会顺序执行到switch结尾

public class SwitchDemo {public static void main(String[] args){char c = 'b';char c2 = 'c';switch(c){case 'b'://没有break,穿透了System.out.println("ok1");case 'c':System.out.println("ok2");default:System.out.println("ok3");}}}

结果如下:

在这里插入图片描述

小练习

在这里插入图片描述

01:

import java.util.Scanner;
public class ConvertWork
{public static void main(String[] args){Scanner myScanner = new Scanner(System.in);System.out.println("Please input a-e");char c1 = myScanner.next().charAt(0);switch(c1){case 'a':System.out.println("A");break;case 'b':System.out.println("B");break;case 'c':System.out.println("C");break;case 'd':System.out.println("D");break;case 'e':System.out.println("E");break;default :System.out.println("Input Error");}}
}

02:

public class SwitchDemo
{public static void main(String[] args){double score = 88.5;if (score >=0 && score <=100){switch((int)(score/60)){case 0:System.out.println("不合格");break;case 1:System.out.println("合格");break;// default://     System.out.println("Input Error");}}else{System.out.println("Input Error");}}
}

03:

import java.util.Scanner;
public class SwitchDemo
{public static void main(String [] args){Scanner myScanner = new Scanner(System.in);System.out.println("Input month");int month = myScanner.nextInt();switch(month){case 3:case 4:case 5:System.out.println("springtime");break;case 6:case 7:case 8:System.out.println("summer");break;case 9:case 10:case 11:System.out.println("autumn");case 1:case 2:case 12:System.out.println("winter");default :System.out.println("Input Error");}}
}

switch和if的比较

在这里插入图片描述

先死后活,化繁为简

for循环控制

在这里插入图片描述

流程图

在这里插入图片描述

使用细节

在这里插入图片描述

小练习

在这里插入图片描述

01:

public class ForExercise
{public static void main(String[] args){int cnt = 0;int sum = 0;int start = 1;int end = 100;int num = 9;for (int i = start;i<=end;i++){if (i % num==0){System.out.println("i = "+i);cnt++;sum+=i;}}System.out.println("cnt = "+cnt);System.out.println("sum = "+sum);}
}

02:

public class ForWorkDemo
{public static void main(String [] args){int n = 5;for (int i = 0;i<=n;i++){System.out.println(i+"+"+(n-i)+"="+n);}}
}

while循环控制

在这里插入图片描述

01:

public class WhileWorkDemo
{public static void main(String[] args){int i = 1;while(i <= 10){System.out.println("i = "+i);i++;}}
}

流程图

在这里插入图片描述

注意事项和细节说明

在这里插入图片描述

小练习

在这里插入图片描述

01:

public class WhileWork
{public static void main(String[] args){int i = 1;while(i <= 100){if (i%3==0){System.out.println(i);//i++;//easy error}i++;}}
}

02:

public class WhileWork
{public static void main(String[] args){int i = 40;while(i<=200){if (i %2==0){System.out.println(i);}i++;}}
}

do…while循环控制

在这里插入图片描述

流程图

在这里插入图片描述

01:

public class DoWhileWork
{public static void main(String[] args){int i = 1;do{System.out.println(i);i++;}while(i <= 10);System.out.println("continue");}
}

注意事项和细节说明

在这里插入图片描述

小练习

在这里插入图片描述

01:

public class DoWhileWork
{public static void main(String[] args){int cnt = 0;int i = 1;do{if (i % 5==0 && i%3!=0){System.out.println(i);cnt++;}i++;}while(i<=200);System.out.println(cnt);}
}

02:

import java.util.Scanner;
public class DoWhileWork
{public static void main(String[] args){Scanner myScanner = new Scanner(System.in);char answer = ' ';do{System.out.println("老韩使用五连鞭");System.out.println("老韩问:还钱吗?y/n");answer = myScanner.next().charAt(0);System.out.println("His ansmer = "+answer);}while(answer!='y');System.out.println("李三还钱了");}
}

多重循环控制

在这里插入图片描述

01:

public class ForWorkDemo
{public static void main(String[] args){for (int i = 0;i<2;i++)	for (int j = 0;j<3;j++){System.out.println("i = "+i+" j = "+j);}}
}

结果如下:

在这里插入图片描述

小练习

在这里插入图片描述

01:

import java.util.Scanner;
public class ForWorkDemo
{public static void main(String[] args){Scanner myScanner = new Scanner(System.in);double sumbig = 0;for (int i = 1;i<=3;i++){double sum = 0;int cnt = 0;for (int j = 1;j<=5;j++){System.out.println("Please input 第"+i+"个班级的第"+j+"个学生");double score = myScanner.nextDouble();sum+=score;if (score >= 60){cnt++;}}System.out.println("第"+i+"个班级及格的学生有"+cnt+"个");System.out.println("第"+i+"个班级的平均分为:" + sum/5);sumbig+=(sum/5);}System.out.println("bigsum = "+(sumbig/3));}
}

02:

代码略。

大练习

在这里插入图片描述

化繁为简

01:

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

02:

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

03:

public class PrintWorkDemo {public static void main(String[] args){for (int i = 1;i<=5;i++){for (int k = 1;k<=5-i;k++){System.out.print(" ");}for (int j = 1;j<=2*i-1;j++){System.out.print("*");}System.out.println();}}
}//    *
//   ***
//  *****
// *******
//*********

04:

public class PrintWorkDemo {public static void main(String[] args){for (int i = 1;i<=5;i++){for (int k = 1;k<=5-i;k++){System.out.print(" ");}for (int j = 1;j<=2*i-1;j++){if (i!=5 && j==1 || j==2*i-1)System.out.print("*");else if (i!=5)System.out.print(" ");elseSystem.out.print("*");}System.out.println();}}
}//    *
//   * *
//  *   *
// *     *
//*********

跳转控制语句break

在这里插入图片描述

  • Math.random()

返回带正号的double值,该值大于等于0.0,且小于1.0

01:

public class RandomBreakWork {public static void main(String[] agrs){int cnt = 0;while(true){cnt++;int flag = (int)(Math.random()*100)+1;if (flag==97) break;}System.out.println(cnt);}
}

基本介绍和流程图

在这里插入图片描述

注意事项和细节说明

在这里插入图片描述

01:

public class RandomBreakWork {public static void main(String[] agrs){label1:for (int j = 0;j<4;j++){label2:for (int i = 0;i<10;i++){if (i == 2) break;System.out.println("i = "+i);}}}
}

结果如下:

在这里插入图片描述

02:

public class RandomBreakWork {public static void main(String[] agrs){label1:for (int j = 0;j<4;j++){label2:for (int i = 0;i<10;i++){if (i == 2) break label1;System.out.println("i = "+i);}}}
}

结果如下:

在这里插入图片描述

小练习

在这里插入图片描述

01:

public class RandomBreakWork {public static void main(String[] agrs){int sum = 0;for (int i = 1;i<=100;i++){sum+=i;if (sum > 20){System.out.println(i);break;}}}
}//------------------------------------------public class RandomBreakWork {public static void main(String[] agrs){int flag = 0;int sum = 0;for (int i = 1;i<=100;i++){sum+=i;if (sum > 20){flag = i;break;}}System.out.println(flag);}
}

02:

tip:

  • 字符串的内容比较使用的方法equals
public class StringTestDemo
{public static void main(String[] args){String name = "Tom";System.out.println(name.equals("Jack"));System.out.println("jack".equals(name));//[推荐,可以避免空指针]}
}
import java.util.Scanner;public class RandomBreakWork {public static void main(String[] agrs){Scanner myScanner = new Scanner(System.in);String name = "";String passwd = "";int chance = 3;for (int i = 1;i<=3;i++){System.out.println("Please input name");name = myScanner.next();System.out.println("Please input passwd");passwd = myScanner.next();//compareif("丁真".equals(name) && "666".equals(passwd)){System.out.println("ok");break;}chance--;System.out.println("你还有"+chance+"次机会");}}
}

跳转控制语句continue

流程图在这里插入图片描述

在这里插入图片描述

01:

public class RandomBreakWork {public static void main(String[] agrs){int i = 1;while(i <= 4){i++;if (i==2){continue;}System.out.println("i = "+i);
//         i = 3
//         i = 4
//         i = 5}}
}

案例说明

01:

public class RandomBreakWork {public static void main(String[] agrs){label1:for (int j = 0;j<2;j++){label2:for (int i = 0;i<10;i++){if (i==2){continue;}System.out.println("i = "+i);}}}
}

结果如下:

i = 0
i = 1
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 0
i = 1
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9

02:

public class RandomBreakWork {public static void main(String[] agrs){label1:for (int j = 0;j<2;j++){label2:for (int i = 0;i<10;i++){if (i==2){continue label1;}System.out.println("i = "+i);}}}
}

结果如下:

i = 0
i = 1
i = 0
i = 1

跳转控制语句return

在这里插入图片描述

01:

public class ReturnDemo {public static void main(String[] args){for (int i = 1;i<=5;i++){if (i==3){System.out.println(i);break ;}System.out.println("hello world");}System.out.println("go on...");}
}

结果如下:

hello world
hello world
3
go on…

02:

public class ReturnDemo {public static void main(String[] args){for (int i = 1;i<=5;i++){if (i==3){System.out.println(i);continue;}System.out.println("hello world");}System.out.println("go on...");}
}

结果如下:

hello world
hello world
3
hello world
hello world
go on…

03:

public class ReturnDemo {public static void main(String[] args){for (int i = 1;i<=5;i++){if (i==3){System.out.println(i);return;}System.out.println("hello world");}System.out.println("go on...");}
}

结果如下:

hello world
hello world
3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net Core Configuration源码探究

前言上篇文章我们演示了为Configuration添加Etcd数据源&#xff0c;并且了解到为Configuration扩展自定义数据源还是非常简单的&#xff0c;核心就是把数据源的数据按照一定的规则读取到指定的字典里&#xff0c;这些都得益于微软设计的合理性和便捷性。本篇文章我们将一起探究…

面试官:你说你喜欢研究新技术,那么请说说你对 Blazor 的了解

阅读本文大概需要 1.5 分钟。最近在几个微信 .NET 交流群里大家讨论比较频繁的话题就是这几天自己的面试经历。面试官&#xff1a;“你刚说你喜欢研究新技术&#xff0c;那么你对 Blazor 了解多少&#xff1f;”作为一位专注于 .NET 开发的软件工程师&#xff0c;你好意思说你对…

Java变量

变量 ​ 变量是程序的基本组成单位 变量的介绍 概念 变量相当于内存中一个数据存储空间的表示&#xff0c;你可以把变量看做是一个房间的门牌号&#xff0c;通过门牌号我们可以找到房间&#xff0c;而通过变量名可以访问到变量(值)。 01&#xff1a; class Test {public s…

[Student.Achieve] 学生教务管理系统开源

&#xff08;源自&#xff1a;https://neters.club&#xff09;一觉醒来Github改版了&#xff0c;我个人还是挺喜欢的????。还有两个月就是老张做开源两周年了&#xff0c;时间真快&#xff0c;也慢慢的贡献了很多的开源作品&#xff0c;上边的是主要的七个作品&#xff0c…

.NET Core HttpClient源码探究

前言在之前的文章我们介绍过HttpClient相关的服务发现&#xff0c;确实HttpClient是目前.NET Core进行Http网络编程的的主要手段。在之前的介绍中也看到了&#xff0c;我们使用了一个很重要的抽象HttpMessageHandler&#xff0c;接下来我们就探究一下HttpClient源码&#xff0c…

Java 多线程:线程优先级

1 优先级取值范围 Java 线程优先级使用 1 ~ 10 的整数表示&#xff1a; 最低优先级 1&#xff1a;Thread.MIN_PRIORITY 最高优先级 10&#xff1a;Thread.MAX_PRIORITY 普通优先级 5&#xff1a;Thread.NORM_PRIORITY 2 获取线程优先级 public static void main(String[]…

《Unit Testing》1.1 -1.2 单元测试的目的

本系列是《Unit Testing》 一书的读书笔记 精华提取。书中的例子 C# 语言编写&#xff0c;但概念是通用的&#xff0c;只要懂得面向对象编程就可以。 单元测试当前的状态目前&#xff0c;在&#xff08;美国的&#xff09;大部分公司里&#xff0c;单元测试都是强制性的。生产…

Java Exception

Exception 异常捕获 将代码块选中->ctrlaltt->选中try-catch 01: public class Exception01 {public static void main(String[] args) {int n1 10;int n2 0;try {int res n1/n2;} catch (Exception e) { // e.printStackTrace();System.out.println(e.…

《Unit Testing》1.3 使用覆盖率指标来度量测试套件的好坏

使用覆盖率来度量测试套件&#xff08;Test Suite&#xff09;的质量有两种比较流行的测试覆盖率的度量方法&#xff1a;代码覆盖率分支覆盖率覆盖率度量会显示一个测试套件&#xff08;Test Suite&#xff09;会执行多少代码&#xff0c;范围从 0 至 100%。除了上述两种方法之…

Linux创始人:v5.8是有史以来最大的发行版之一

导语Linux v5.8已经修改了所有文件的20&#xff05;&#xff0c;是迄今为止变化最大的一次发行版。正文Linux创始人Linus Torvalds表示&#xff1a;Linux内核5.8版是“我们有史以来最大的发行版之一”。如果一切顺利&#xff0c;Linux v5.8稳定版应该在2020年8月的某个时候出现…

[高等数学]这你不背?

求导及求微分的基本公式: 泰勒中值定理: 麦克劳林公式: 不定积分公式: 凑微分: 第二类换元积分法常用的三种情况: 求高阶导数的几个公式: 二阶常系数非齐次线性微分方程的特解: 排列组合公式: C的计算&#xff1a; 下标的数字乘以上标的数字的个数,且每个数字都要-1.再除以上标…

怎么开会才不浪费时间?

这里是Z哥的个人公众号每周五11&#xff1a;45 按时送达当然了&#xff0c;也会时不时加个餐&#xff5e;我的第「148」篇原创敬上大家好&#xff0c;我是Z哥&#xff0c;先祝大家端午节日快乐。节日期间就发篇比较短的文章吧。人在职场混&#xff0c;开会应该是本职工作之外花…

.NET 5.0预览版6发布:支持Windows ARM64设备

2020年6月25日&#xff0c;微软dotnet团队在博客宣布了第六个 .NET 5.0 的预览版&#xff1a;https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-6/&#xff0c;在改进性能的同时增加了一些新的功能。ASP.NET Core和 EF Core也将于今日发布了。注意&#xff1…

利用真值表法求取主析取范式以及主合取范式的实现(C++)

代码如下: #include <iostream> #include <stack> #include <string> #include <vector> using namespace std; const int N 300; stack<char> s; stack<char> v; int seq; bool vis[N]; bool flag[N]; void dfs(int n); vector<int&…

基于 Blazor 开发五子棋小游戏

今天是农历五月初五&#xff0c;端午节。在此&#xff0c;祝大家端午安康&#xff01;端午节是中华民族古老的传统节日之一。端午也称端五&#xff0c;端阳。此外&#xff0c;端午节还有许多别称&#xff0c;如&#xff1a;午日节、重五节、五月节、浴兰节、女儿节、天中节、地…

汇编cmp比较指令详解

刚刚看到了cmp指令&#xff0c;一开始有点晕。后来上网找了些资料&#xff0c;终于看明白了&#xff0c;为了方便初学者&#xff0c;我就简单写下我的思路吧。高手绕过&#xff0c;谢谢&#xff01; cmp(compare)指令进行比较两个操作数的大小例:cmp oprd1,oprd2为第一个操作减…

如何在ASP.NET Core中使用SignalR构建与Angular通信的实时通信应用程序

图片假设我们要创建一个监视Web应用程序&#xff0c;该应用程序为用户提供了一个能够显示一系列信息的仪表板&#xff0c;这些信息会随着时间的推移而更新。第一种方法是在定义的时间间隔&#xff08;轮询&#xff09;定期调用API 以更新仪表板上的数据。无论如何&#xff0c;还…

LED计数电路,5输入按键编码器,7段数码管显示驱动集成为LED计数测试电路

LED计数电路: 5输入按键编码器: 7段数码管显示驱动真值表: 集成:

越卖越涨?腾讯股票3月后大涨45%,超越“阿里”成中国第一,市值相当于14.3个百度!...

01 腾讯股价大涨据股市最新消息&#xff1a;腾讯股价已连续3个交易日上涨, 其中6月22日腾讯股价重返470港元关口&#xff0c;公司市值突破4.5万亿港元&#xff0c;折合4.0万亿人民币&#xff1b;而6月23日上午腾讯股价再度大涨4.05%&#xff0c;刷出493.8港元的新高&#xf…