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).公式是 ...
随机推荐
- C# WindowService 安装和卸载
安装脚本 install.bat 内容 @echo 安装WindowService%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil ...
- Element ui 2.8版本中的table树不能默认全展开解决方法
方案一:这个方案有问题 <el-table ref="tableTreeRef" :data="tableDate" ...... </el-tab ...
- java中单例模式的优缺点
一.什么叫单例 对单例类实例化后拿到的都是堆里面的同一个实例对象,通俗一点就是所有的这个单例的实例化引用都指向堆内存中的一个实例对象(有且仅有一个) 使用场景:对象需要频繁的实例化和销毁,此时考虑使用 ...
- python 删除文件或文件夹
os.remove(path) 删除文件 path. 如果path是一个目录, 抛出 OSError错误.如果要删除目录,请使用rmdir(). remove() 同 unlink() 的功能是一样的 ...
- DP大大大大大赏
还是前置: 动态规划的三种实现方法: 递推,递归,记忆化搜索 然后还是从斐波那契数列开始引入: 两种求斐波那契数列的方法: 1.用其他位置的结果得到自己的结果: 2.用自己的结果算其他的结果: 以上两 ...
- dash shell 的一些总结
最近写个一些dash shell 相关的代码,中间遇到了一些坑以及需要注意的地方,记录一下 1 参数 numberofargmuments(){ echo "The number of ar ...
- JavaScript的几种循环方式
JavaScript提供了许多通过LOOPS迭代的方法.本教程解释了现代JAVASCRIPT中各种各样的循环可能性 目录: for forEach do...while while for...in ...
- cef chromium 编译
前言 目前客户端引用了cef sharp库来嵌入web页面 cef sharp是对cef (chromium embed framework)的c#封装 cef是对chromium内核的c++封装 什 ...
- div布局(持续更新)
1. 效果: 代码: <!DOCTYPE html> <html> <head> <meta name="viewport" conten ...
- Pytorch中nn.Conv2d的用法
Pytorch中nn.Conv2d的用法 nn.Conv2d是二维卷积方法,相对应的还有一维卷积方法nn.Conv1d,常用于文本数据的处理,而nn.Conv2d一般用于二维图像. 先看一下接口定义: ...