Java使用条件语句和循环结构确定控制流(实例)
作者:jingxian 发布时间:2022-07-04 04:52:35
标签:java,循环结构,条件语句
与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流。本文将简单讲解条件、循环和switch。
一、块作用域
块(block),即复合语句。是指由一对大括号括起来的若干条简单的Java语句。块确定了变量的作用域。
比如:
public class Code {
static
{
System.out.println("1");
}
{
System.out.println("2");
}
public Code()
{
System.err.println("3");
}
public static void main(String[]args)
{
new Code();
}
}
注意:不能在嵌套的两个块中声明同名的变量。
二、条件语句
格式1:
if(condition)
{
statement1
statement2
........
}
例如:
if(youSales>=target)
{
performance="Satisfactory";
bonus=1000;
}
格式2:
if(condition)statement1 else statement2
例如:
if(youSales>=target)
{
performance=“Satisfactory”;
bonus=100+10*(youSales-target“);
}
else
{
performance=”Unstatisfactory“;
bonus=0;
}
三、循环
当条件为true时,while循环执行。
格式1:
while(condition)statemnet
例如:
while (balance<goal)
{
balance+=payment;
double interest=balance*interestRate/100;
balance+=interest;
years++;
}
格式2:
do statement while(condition);
do
{
balance+=payment;
double interest=balance*interestRate/100;
balance+=interest;
year++;
System.out.printf("After year %d,your balance is %,.2f%,year,balance");
System.out.print("Ready to retire?(Y/N)");
input=in.next();
}
while(input.equals("N"));
}
四、确定循环
for循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代的次数。
格式类似如下:
for(int i=0;i<x.length;i++)
System.out.println(i);
例子4个:
public class ShuZu1 {
public static void main(String[]args){
int [][] x={{1,2,2,2,2},{3,3,3,3,3},{4,5,-1,17,55}};
int result=qiuHe(x);
System.out.println("和是"+result);
}
public static int qiuHe(int[][]x){
int s=0;
for(int i=0;i<x.length;i++)
{
for(int j=0;j<x[i].length;j++)
{
s+=x[i][j];
}
}
return s;
}
}
public class ShuZu2 {
public static void main(String[]args){
int [][] x=new int[7][7];
//生成随机数组,注意没有返回值,另外打印一行字
suiJi(x);
System.out.println("生成的数组是:");
//显示数组内容,注意没有返回值
showArray(x);
//取值
float result=getAvg(x);
System.out.println("平均数是"+result);
}
static float getAvg(int [][] x){
float s=0;
for(int i=0;i<x.length;i++){
for(int j=0;j<x[i].length;j++){
s+=x[i][j];
}
}
return s/(x.length*x[0].length);
}
static void suiJi (int[][]x){ //这里我出错了。返回值写了int型,不应该的。思考一下。
for(int i=0;i<x.length;i++){
for(int j=0;j<x[i].length;j++){
x[i][j]=(int)(Math.random()*10);
}
}
}
static void showArray(int[][]x){ //这里我出错了。返回值写了int型,不应该的。思考一下。
for(int i=0;i<x.length;i++){
for(int j=0;j<x[i].length;j++){
System.out.print(x[i][j]+"\t");// 给数据空格
}
System.out.println();//打印换行
}
}
}
import java.util.Arrays;
public class SuZu3{
public static void main(String[] args) {
int [] x={2,-1,7,777,6,764,85896,65554,0,874785,417825,74};
sort(x,'n');
for(int i=0;i<x.length;i++){
System.out.print(x[i]+"\t");
}
}
//给数组进行选择性排序
//调用API进行升序
static void sort(int[]x,char Flag){
if('A'==Flag){
Arrays.sort(x);
}
else {
for(int i=0;i<x.length-1;i++){
for(int j=0;j<x.length-1-i;j++){
int temp=0;
if(x[j]<x[j+1]){
temp=x[j];
x[j]=x[j+1];
x[j+1]=temp;
}
}
}
}
}
}
import java.util.Scanner;
public class Suzu4 {
public static void main(String[] args) {
System.out.println("请输入");//这个命令只能紧贴在Scanner scan = new Scanner(System.in);的上面或下面才有效。
Scanner scan = new Scanner(System.in);
//System.out.println("请输入");或者放在Scanner scan = new Scanner(System.in);的下面
String str = scan.nextLine();// nextLine才是接收一行
char[] s = str.toCharArray();// 把字符串转换称一个字符数组
scan.close();
int letterCount = 0;
int numberCount = 0;
int spaceCount = 0;
int otherCount = 0;
for (int i = 0; i < s.length; i++) {
if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z') {
letterCount++;
} else if (s[i] >= '1' && s[i] <= '9') {
numberCount++;
} else if (s[i] == ' ') {
spaceCount++;
} else {
otherCount++;
}
}
System.out.println("字母有" + letterCount + "个");
System.out.println("数字有" + numberCount + "个");
System.out.println("空格有" + spaceCount + "个");
System.out.println("其他有" + otherCount + "个");
}
}//ctrl+shift+f 是代码格式化
//ctrl+shift+o 是导包
五、多重选择:switch语句
格式类似如下:
switch(choice)
{
case 1:
........
break;
case 2:
.......
break;
.........
//可以再来几个case(用break结束一下)
default:
.......
break;
}
注意:
case标签可以是:
* 类型为char、byte、short或int的常量表达式。
* 枚举常量
* 从Java SE 7开始,case标签还可以是字符串字面量。
0
投稿
猜你喜欢
- 前言这里主要简单介绍如何使用Camera+SurfaceView自定义相机拍照,如果是Camera2或者是TextureView的可以前往主
- 本文实例讲述了Java基本数据类型与类型转换。分享给大家供大家参考,具体如下:相关内容:基本数据类型整型浮点型字符型布尔型数据类型转换数组首
- Java异常层次结构Exception异常RuntimeException与非RuntimeException异常的区别:非RuntimeE
- 比如在类上使用该注解 @Alias("dDebtEntity")则在mapper.xml文件中resultType=&q
- 这个例子需要使用google的开源项目zxing的核心jar包core-3.2.0.jar可以百度搜索下载jar文件,也可使用maven添加
- 本文实例讲述了Java泛型类与泛型方法的定义。分享给大家供大家参考,具体如下:Java泛型类的定义一 点睛泛型类定义的语法如下:[访问修饰符
- 前言springboot提供了 spirng-boot-starter-test 以供开发者使用单元测试,在引入 spring-boot-s
- 这里使用的是spring-security和原生的jasig cas包来进行整合,为什么没有直接使用spring提供的spring-secu
- 前言在上一篇学习SpringBoot中,整合了Mybatis、Druid和PageHelper并实现了多数据源的操作。本篇主要是介绍和使用目
- 目录LinkedHashMap 实现继承 LinkedHashMap组合 LinkedHashMap链表 + HashMap 实现LRU,即
- 本文实例讲述了Java实现分解任意输入数的质因数算法。分享给大家供大家参考,具体如下:分解任意输入数的质因数:质因数概念:任何一个合数都可以
- 一、什么是SFTP?SFTP是一个安全文件传送协议,可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务
- springcloud eureka切换nacos配置中心地址: http://10.166.9.7:8848/nacos/bootstra
- 1 StringString:字符串常量,字符串长度不可变。2 StringBufferStringBuffer:字符串变量(Synchro
- 获得redis所有的key-value运行结果:redis配置文件需要序列化@Bean public RedisT
- 目录操作创建目录File类中有两个方法可以用来创建文件夹:mkdir( )方法创建一个文件夹,成功则返回true,失败则返回false。失败
- 本文实例为大家分享了android TextView跑马灯效果的具体代码,供大家参考,具体内容如下一、要点设置四个属性android:sin
- 在mybatis中sql是写在xml映射文件中的,如果sql中有一些特殊字符的话,在解析xml文件的时候就会被转义,如若不希望被转义,那该怎
- [LeetCode] 9. Palindrome Number 验证回文数字Determine whether an integer is
- 一.HashMap 和Hashtable 的区别我们先看2个类的定义 public class Hashtable exten