Java语言基础(7)
1 for循环
案例:Demo1
1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?
1/1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?
分子都是1,分母是1~100
首先定义一个double类型变量sum=0,保存累加之和
第1次:sum = sum + 1/1
第2次:sum = sum + 1/2
第3次:sum = sum + 1/3
第4次:sum = sum + 1/4
第5次:sum = sum + 1/5
...
第100次:sum = sum + 1/100
定义变量double i = 0,i的取值1~100,i作为分母
公式:sum = sum + 1/i
for(double i=1;i<=100;i++){
sum = sum + 1/i;
}
案例:Demo1
1/1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?
public class Demo1 {
public static void main(String[] args) {
double sum = 0;
for(double i=1;i<=100;i++){
sum = sum + 1/i;
}
System.out.println(sum);
}
} public class Demo2 {
//1+1/3+1/5+1/7+1/9+...1/99 = ?
//1/1+1/3+1/5+1/7+1/9+...1/99 = ?
//规律:分子都是1,分母1~99之间的奇数
public static void main(String[] args) {
//1 求出分母
double sum = 0;
for(double i=1;i<=99;i=i+2){
//2 累加求和:sum = sum+1/i
sum = sum + 1/i;
}
System.out.println("累加之和:"+sum);
}
} //Demo3:
//1+1/2+1/4+1/6+1/8+1/10+...+1/200 = ?
public class Demo3 {
//1+(1/2+1/4+1/6+1/8+1/10+...+1/200) = ?
public static void main(String[] args) {
double sum=1;
for(double i=2;i<=200;i=i+2){
sum = sum + 1/i;
}
System.out.println("累加之和:"+sum);
}
}
2 break和continue
1)break:直接退出循环语句。
2)continue:结束本次循环,继续开始下次循环。
案例:Demo4
public class Demo4 {
public static void main(String[] args) {
for(int i=1;i<=30;i++){
if(i==10){
break;//直接退出循环
}
System.out.println(i);
}
}
} public class Demo5 {
public static void main(String[] args) {
for(int i=1;i<=30;i++){
if(i==10){
continue;//结束本次循环,继续开始下次循环
}
System.out.println(i);
}
}
} public class Demo6 {
//使用for循环,求出1~300之间所有的奇数累加之和,
//如果累加之和一旦超过5000,直接退出for循环,并
//输出当前的累加之和。
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=300;i=i+2){
sum = sum + i;
if(sum>5000){
break;
}
}
System.out.println(sum);
}
} //Demo7: 使用for循环,求出1~100之间所有的奇数
//(2种写法)
public class Demo7 {
public static void main(String[] args) {
//方法1:
for(int i=1;i<=100;i++){
if(i%2!=0){
System.out.println(i);
}
}
//在for循环中定义的变量i,只在for循环中有效,在
//for循环外面无效
// System.out.println(i);
System.out.println();
//方法2:
for(int i=1;i<=100;i=i+2){
System.out.println(i);
}
}
}
3 循环嵌套
1)输出内容,不换行
System.out.print("要显示的内容");
案例:Demo8
public class Demo8 {
public static void main(String[] args) {
System.out.print("李斯,");
System.out.print("霍光,");
System.out.print("房玄龄,杜如晦,");
System.out.print("李善长,张居正。");
System.out.println();//换行
System.out.println("白起");
System.out.println("卫青,霍去病");
System.out.println("李靖,苏定方");
System.out.println("徐达,蓝玉");
}
} public class Demo9 {
public static void main(String[] args) {
//*****
System.out.println("*****");
for(int i=1;i<=5;i++){
System.out.print("*");
}
}
} public class Demo10 {
//***
//***
//***
public static void main(String[] args) {
for(int i=1;i<=6;i++){//行数
for(int k=1;k<=10;k++){//*列数
System.out.print("*");
}
System.out.println();
}
}
} //Demo11:从控制台输入两个整数,分别作为打印长方形*的
//行数row和列数col
//比如:row:2 col:3
//***
//***
//外层循环:i=1 i<=3(true)
//内层循环第1次:k=1 k<=3(true) * k++(k:2)
// 第2次: k<=3(true) * k++(k:3)
// 第3次: k<=3(true) * k++(k:4)
// 第4次: k<=3(false) 退出内层循环
//换行
// i++(i:2)
//外层循环第2次: i<=3(true)
//内层循环: ***
//换行
// i++(i:3)
//外层循环第3次: i<=3(true)
//内层循环: ***
//换行
// i++(i:4)
//外层循环第4次: i<=3(false) 退出整个循环
import java.util.Scanner;
public class Demo11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数:");
int row = sc.nextInt();
System.out.println("请输入列数:");
int col = sc.nextInt();
for(int i=1;i<=row;i++){//行数
for(int k=1;k<=col;k++){//列数
System.out.print("*");
}
System.out.println();
}
}
} public class Demo12 {
/*
*
**
***
****
*****
*/
public static void main(String[] args) {
for(int i=1;i<=10;i++){//行数
for(int k=1;k<=i;k++){
System.out.print("*");
}
System.out.println();
}
}
} //Demo13:从控制台输入一个整数,作为打印直角三角形
//*的行数row,打印直角三角形*
//row:3
//*
//**
//***
//每行*的个数,跟当前的行数一致(i)。
//内层循环每次打印i个*,内层循环执行i次
//控制内层循环执行次数的k的取值:1~i
import java.util.Scanner;
public class Demo13 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数:");
int row = sc.nextInt();
for(int i=1;i<=row;i++){
for(int k=1;k<=i;k++){
System.out.print("*");
}
System.out.println();
}
}
} public class Demo14 {
//1*1=1
//1*2=2 2*2=4
//1*3=3 2*3=6 3*3=9
//1*4=4 2*4=8 3*4=12 4*4=16
//...
//1*9=9 2*9=18 ... 9*9=81
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int k=1;k<=i;k++){
System.out.print(k+"*"+i+"="
+i*k+" ");
}
System.out.println();
}
}
}
2)循环嵌套:在一个循环语句的内部,又包含了一个循环语句。外层循环执行一次,内层循环执行所有。
for(int i=1;i<=3;i++){
for(int k=1;k<=3;k++){
System.out.print("*");
}
System.out.println();
}
4 数组
把相同类型的数据聚合在一起,使用数组来保存相同类型的多个数据。
1)创建数组格式:
数据类型[] 数组名 = new 数据类型[数据个数];
或者
数据类型 数组名[] = new 数据类型[数据个数];
eg:int[] ary = new int[5];
2)元素:数组中使用元素来保存数据,元素就相当于变量
3)下标:用来标识数组中的每一个元素,下标的取值从0开始,最后一个元素的下标值(元素总个数-1)
数组名[下标值] ---> 元素
eg:ary[0] = 100; //把100赋值给ary中第1个元素
ary[1] = 200;
ary[2] = 300;
ary[3] = 400;
ary[4] = 500;
案例:Demo15
public class Demo15 {
public static void main(String[] args) {
int[] ary = new int[6];
ary[0] = 100;
//分别把200,300,400,500,600依次的给其他元素赋值
ary[1] = 200;
ary[2] = 300;
ary[3] = 400;
ary[4] = 500;
ary[5] = 600;
System.out.println(ary[0]);
System.out.println(ary[1]);
System.out.println(ary[2]);
System.out.println(ary[3]);
System.out.println(ary[4]);
System.out.println(ary[5]);
// ary[6] = 1000;
//报错了,ary数组中只能保存6个元素,元素下标的取值
//0~5,ary[6]中下标的取值超过范围。
}
} public class Demo16 {
public static void main(String[] args) {
double ary[] = new double[5];
ary[0] = 1.6;
ary[1] = 2.3;
ary[2] = 9.66;
ary[3] = 10.55;
ary[4] = 100.1;
//输出每一个元素的值
System.out.println(ary[0]);
System.out.println(ary[1]);
System.out.println(ary[2]);
System.out.println(ary[3]);
System.out.println(ary[4]);
}
} public class Demo17 {
public static void main(String[] args) {
String[] ary = new String[6];
ary[0] = "徐志摩";
ary[1] = "梁思成";
ary[2] = "林徽因";
ary[3] = "林语堂";
ary[4] = "钱钟书";
ary[5] = "冰心";
System.out.println(ary[0]);
System.out.println(ary[1]);
System.out.println(ary[2]);
System.out.println(ary[3]);
System.out.println(ary[4]);
System.out.println(ary[5]);
}
}
4)元素的默认值:系统默认给元素赋的值
案例:Demo18
public class Demo18 {
public static void main(String[] args) {
//整型数组元素的默认值:0
int[] ary = new int[100];
System.out.println(ary[1]);//0
long[] ary2 = new long[100];
System.out.println(ary2[99]);//0
//浮点类型数组元素的默认值:0.0
double[] ary3 = new double[500];
System.out.println(ary3[10]);//0.0
//布尔类型数组元素的默认值:false
boolean[] ary4 = new boolean[100];
System.out.println(ary4[0]);//false
//引用类型数组元素的默认值:null
String[] ary5 = new String[20];
System.out.println(ary5[1]);
//null:用来表示引用类型变量没有值,为空。
}
}
整数类型数组元素的默认值是0
浮点类型数组元素的默认值是0.0
布尔类型数组元素的默认值是false
引用类型数组元素的默认值是null
null:当前引用类型的变量(元素)没有值,为空。
5)使用for循环来操作数组中的元素
分析:数组中通过下标来区分开每一个元素,下标的取值从0~元素总个数-1。通过控制循环次数变量i的取值,来指向数组中的每一个元素,i的取值0~元素总个数-1,作为元素的下标值。
for(int i=0;i<=元素总个数-1;i++){
数组名[i] ---> 元素
}
案例:Demo19
public class Demo19 {
//使用for循环来操作数组中的元素
//控制循环次数变量i的取值,作为数组元素的下标值
//for(int i=0;i<=元素总个数-1;i++){
// 数组名[i] -----> 元素
//}
public static void main(String[] args) {
//创建一个int类型数组ary,包含100个元素,分别把
//0~99之间的每一个整数赋值给ary数组中的每一个元素
//最后输出每一个元素的值
int[] ary = new int[100];
for(int i=0;i<=99;i++){
ary[i] = i;
System.out.println(ary[i]);
} /*
for(int i=0;i<=99;i++){
System.out.println(ary[i]);
}
*/
}
} public class Demo20 {
//Demo20:创建一个int类型数组ary,包含了200个元素,
//把0~199之间每一个整数给ary数组元素依次赋值,输出
//每一个元素的值。
public static void main(String[] args) {
int[] ary = new int[200];
for(int i=0;i<=ary.length-1;i++){
ary[i] = i;
System.out.println(ary[i]);
}
}
} public class Demo21 {
//创建一个int类型数组ary,包含100个元素,把1~100
//之间的每一个整数给ary数组中元素依次赋值,最后输出
//每一个元素的值
//i 0~99
//i+1 1~100
public static void main(String[] args) {
int[] ary = new int[100];
for(int i=0;i<=99;i++){
ary[i] = i+1;
System.out.println(ary[i]);
}
}
} public class Demo22 {
//创建一个int类型数组ary,包含200个元素,把1~200之间
//每一个整数给ary数组中元素依次赋值
//1 输出每一个元素的值
//2 求出所有元素的累加之和
// sum = sum + i
// sum = sum + ary[i]
public static void main(String[] args) {
int[] ary = new int[200];
for(int i=0;i<=199;i++){
ary[i] = i+1;
System.out.println(ary[i]);
}
//累加求和: sum = sum + ary[i]
int sum = 0;
for(int i=0;i<=199;i++){
sum = sum + ary[i];
}
System.out.println("元素累加之和:"+sum);
}
}
6)数组名.length:返回是数组中元素的总个数
案例:Demo23
public class Demo23 {
public static void main(String[] args) {
int[] ary = new int[200];
System.out.println(ary.length);//200
}
}
for(int i=0;i<=数组名.length-1;i++){
数组名[i] ---> 元素
}
Java语言基础(7)的更多相关文章
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
- java语言基础02
一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...
- Java之--Java语言基础组成—数组
Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...
- Java之--Java语言基础组成—函数
Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...
- Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)
Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...
- Java语言基础(二) Java关键字
Java语言基础(二) Java关键字 Java关键字比较多,我就不列举出来了,只记录一些常用的小知识点: ①Java的关键字只有小写. ②then.sizeof都不是Java的关键字,熟悉C++的程 ...
- Java语言基础(九)
Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...
- Java语言基础(八)
Java语言基础(八) 一.数学运算 + - * / % (1)凡是byte short char类型都按int类型的计算 看看上面的代码,为什么出错! 我已经将100转成byte类型,( ...
- Java语言基础(七)
Java语言基础(七) 今天在公司多呆了会,回来晚了 一.自动类型转换 在Java中,数据是可以转换的 例如可以将byte类型的赋给int类型的 这里希望你了解内存的变化,例如 在这里,我想你应该知 ...
- Java语言基础(六)
Java语言基础(六) 前一章提到的, BigDecimal, DecimalFormat等具体用法,这里就不在说了,网上有许多 一.下面让我们看一个例子(自由落体运动位移) 说明: (1).公式是 ...
随机推荐
- Unity Shader概述
一.概述 在Unity中需要配合使用材质和Unity Shader才能达到需要的效果.常见的流程:(1)创建一个材质:(2)创建一个Unity Shader,并把它赋给创建的材质:(3)把材质赋给要渲 ...
- ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...
- kubeadm安装集群系列-2.Master高可用
Master高可用安装 VIP负载均衡可以使用haproxy+keepalive实现,云上用户可以使用对应的ULB实现 准备kubeadm-init.yaml文件 apiVersion: kubead ...
- 2019-2020 ICPC, Asia Jakarta Regional Contest A. Copying Homework
Danang and Darto are classmates. They are given homework to create a permutation of N integers from ...
- (长期更新)【python数据建模实战】零零散散问题及解决方案梳理
注1:本文旨在梳理汇总出我们在建模过程中遇到的零碎小问题及解决方案(即当作一份答疑文档),会不定期更新,不断完善, 也欢迎大家提问,我会填写进来. 注2:感谢阅读.为方便您查找想要问题的答案,可以就本 ...
- Nmap简介
nmap — 网络探测工具和安全/端口扫描器,参考<Nmap参考指南> 描述: Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具. ...
- IE11报错:[vuex] vuex requires a Promise polyfill in this browser的问题解决
昨天其他同事反馈IE浏览器无法打开线上的应用,查看了一下,发现控制台报以下错误: 发现和vuex有关系,去其官网查看了一下文档,发现关于IE浏览器的Promise的问题: 在vue-cli(webpa ...
- Linux安装git (git-2.11.0)
本文旨在讲述如何在linux上安装最新版的git. 1.查看当前git版本:git --version 查看最新版git:访问https://www.kernel.org/pub/softwa ...
- Minimum Number of Arrows to Burst Balloons
There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...
- Oracle- 数据库知识回顾
数据库知识回顾: sql语句的语法规范: sql语句不区分大小写,习惯上系统的保留字.关键字.函数名称大写,表名和列名小写 使用空格和换行分隔单词效果一样,一般情况下独立的整句不换行,不同的子句需要换 ...