Java 基础 | 循环结构和数组

接着前几天的分支结构的回顾,今天主要回顾一下循环结构和数组方面的一些知识吧。

练习:输入一个数字,然后输出这个数字表示星期几

switch(选择){

case 选项1:Code1;break;

case 选项2:Code2;break;

……

}

1.switch() 中需要一个选项,选项只能是 byte/short/char/int,从JDK 1.7开始,允许使用 String

case 顺序不影响结果

2.如果有一个或者多个 case 之后没有 break,那么这个时候 case 之间的顺序影响结果

练习:输入两个数字以及一个符号,输出这两个数字在这个符号下运算产生的结果

5 9 +   ->14

练习:输入三个数字表示年月日,输出这一天在这一年时第几天

2012 3 5  ------>65

2014 3 5  ------>64

需要判断平年闰年:逢百整除 400;不逢百整除 4

2012 % 4 = 0

2100 % 400 = 0  --- false

循环结构:

用于完成一些相同或者相似的重复操作

while(逻辑值){

Code;

}

练习:

1.求 1-100 以内所有的奇数的和  --- i=1; i+=2;

2.打印 100 以内能被 3 整除而不能被 7 整除的数字  int i = 0; i +=3;

3.输入一个数字,输出这个数字是一个几位数。*

4.输入一个数字,输出这个数字的所有因数。 --- 从 1 开始,逐个数字取余这个输入的数字,看是否能够整除  * 20:1 2 4 5 10 20

定义一个循环,需要三个要素:定义一个变量来控制次数,利用判断条件决定循环结束;在循环过程中需要改变变量

do{

Code;                //先执行代码块,再执行逻辑值,如果逻辑值为 true,转过头来继续执行代码块;如果为 false,就执行接下来的程序。

}whie(逻辑值);

注意:无论条件是否满足,do-while 的循环体必然至少执行一次。

2               7

for(){定义循环变量; 控制条件; 改变循环变量){    //

1             4      5            6

Code;

}

注意:对于 for 循环而言,如果第二部分的控制条件没有写,那么默认是 true,这个时候就成了一个死循环。

习惯上如果变化不规律或者次数不确定一般使用while(比如,从控制台获取一个大于 10 的奇数,有可能输入很多次,就是用这个)

while(n < 10 || n % 2 ==0){

n =s.nextInt();

}

for(; n < 10 || n % 2 == 0; n = s.nextInt())

          //求 1-50 的和
		int sum = 0;
		//对于 for 循环而言,如果第二部分的控制条件没有写,那么默认是 true,这个时候就成了一个死循环。
		for(int i = 1; i <= 50; i++){
			sum += i;
			i++;
		}
		System.out.println(sum);

  

练习:百钱百鸡  --- 3 文钱 1只公鸡, 2 文钱 1 只 母鸡,1 文钱 3 只小鸡;100 文钱如何买恰好 100 只鸡? --- 先定义一个循环表示公鸡,嵌套一个循环表示母鸡,计算小鸡的个数,根据各种鸡的个数来计算钱数是否为 100

/**
练习:百钱百鸡  --- 3 文钱 1只公鸡, 2 文钱 1 只 母鸡,1 文钱 3 只小鸡;100 文钱如何买恰好 100 只鸡?
 --- 先定义一个循环表示公鸡,嵌套一个循环表示母鸡,计算小鸡的个数,根据各种鸡的个数来计算钱数是否为 100
*/
import java.util.Scanner;
public class Demo2d{
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		for(int i = 1 ; i <= 33 ; i++)
		    for(int j = 1; j <= 50; j++){
			int k = 100 - i - j
			if(k % 3 == 0 && 3*i+2*j+k/3 == 100){
				System.out.print(i+","+j+","+k+"\t");
			}
		    }
		}
}

  

break 和 continue

break:用于选择结构和循环结构,表示结束当前的一层结构

continue:只能用于循环结构,表示跳过本次循环继续下次循环,

扩展作业:一个循环打印九九乘法表

            for(int i = 1; i <= 9; i++){
			for(int j = 1; j <= i; j++){
				//if(i*j >= 10){
				//	System.out.print(i+"*"+j+"="+i*j+"   ");
				//}else{
				//	System.out.print(i+"*"+j+"="+i*j+"    ");
				//}
				System.out.print(i+"*"+j+"="+i*j+"\t");//使用制表符 \t,可以不用自己特意去控制了,自动左边对齐了。
			}
			System.out.println();	

	}

  

数组

存储同一类型的多个数据的容器 --- 大小固定的

数组会对放入其中的数据进行编号,编号是从 0 开始的 --- 下标(比数组的长度少一个)

数组的容量 --- 长度

定义格式

数据类型[]  数组名 = new 数据类型[长度];

int  arr = new int[5]; 表示定义一个能存储 5 个整型元素的数组

arr[3] = 10;    arr[5] = 7; // ArrayIndexOutOfBoundsException ---数组下标越界异常

内存

Java 将所占用的内存划分为了 5 块:栈内存(*)、堆内存(*)、方法区、本地方法栈(涉及到块语言的问题)、PC 计数器(寄存器,跟硬件相关)

栈内存

用于存储变量的,变量在栈内存中使用完成之后会立即移除出栈内存,有种卸磨杀驴的样子。只要遇到 new ,就会在堆中开辟一块空间(从 0-n划分),有地址。对于里面的数据先默认一个值(0),当赋值后改变值。

堆内存

用于存储对象(数组是一种特殊的对象)的。元素在存入堆内存中之后会自动的赋予默认值:byte/short/int -0   long -0L  float -0.0f  double -0.0  char -‘\u0000‘  boolean -false,其他类型的默认值都是null。   [(表示数据类型 --- [ 表示数组)   I(如果这是一个数组,那么是这一部分表示数组中的元素类型 --- I 表示 Int)  @(标记符号,表示后边是一个地址) 15db9742(可以认为表示一个地址,实际上是这个对象的哈希码的十六进制形式)

对象在用完之后是在不确定的某个时刻被回收。

明天内容:

数组

定义

内存

应用

遍历、排序、查找、反转、复制

时间/空间复杂度 --- 数列(等差数列求和)、指数、对数(对数公式 logab=logcb/logca,logabn=nlogab  logab=1/logba)

二维数组

原文地址:https://www.cnblogs.com/tangdiao/p/9432673.html

时间: 2024-11-08 19:20:13

Java 基础 | 循环结构和数组的相关文章

[java基础]循环结构1

[java基础]循环结构1 循环结构:for循环,while循环,do_while循环在,增强型for循环 /** 文件路径:G:\JavaByHands\循环语句文件名称:WhileTest.java 编写时间:2016/6/7 作 者:郑晨辉 编写说明:while do while 代码示例 */ public class WhileTest{ public static void main(String[] args){ //初始条件 int i = 0; //进入循环,while循环先判

[Java基础]循环结构3

[Java基础]循环结构3 break 与 continue 中断循环... 1 /** 2 文件路径:G:\JavaByHands\循环语句 3 文件名称:BreakTest.java 4 编写时间:2016/6/12 5 作 者:郑晨辉 6 编写说明:break 结束循环 7 break 是完全跳出循环~~也就是说,遇到break 循环终止~~ 8 */ 9 10 public class BreakTest{ 11 12 public static void main(String[] a

[java基础]循环结构2

[java基础]循环结构2 写了几个循环结构练习~记录一下~~ 1:99乘法表 1 /** 2 文件路径:G:\JavaByHands\循环语句 3 文件名称:GameForFor.java 4 编写时间:2016/6/7 5 作 者:郑晨辉 6 编写说明:for循环示例 代码示例 7 编写一个99乘法表 8 */ 9 public class GameForFor { 10 public static void main(String[] args) { 11 //目标:输出99乘法表 12

java基础 ----- 循环结构

循环的结构特点 :    循环条件   循环操作 -----     while 循环 来个小例子,实现打印50 份shij 1.确定循环条件和循环操作 2.套用while语法写出代码 3.检查循环能否退出 1 public class WhileDemo { 2 3 /* 4 * 如何使用while循环 5 */ 6 public static void main(String[] args) { 7 int count = 1; 8 while(count <= 50){ 9 System.

Java基础(8)——数组

难点儿的已经过去啦,现在又开始基础了哈~ 之前讲变量的时候,变量是一个个的呀~,那我要搞一串变量该啷个办呢?Java给我们出了个好东西叫数组(*^▽^*) 数组呢,就是将变量一组一组的存起来,这个也是需要先声明然后初始化的.但是这个不属于八种基本类型哈,属于引用类型(Java基础5). 数组定义 数组定义有四种方式: 1. 先声明,再初始化 声明:类型[] 名称; 初始化:名称 = new 类型[]{元素1, 元素2, 元素…, 元素n}; 2. 声明初始化一起 声明&初始化:类型[] 名称 =

java基础-引用数据类型之数组(Array)

java基础-引用数据类型之数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 原文地址:https://www.cnblogs.com/yinzhengjie/p/8719728.html

Java基础之结构--&gt;&gt;条件结构与循环结构

Java中程序流程控制语句包括条件结构.循环结构和跳转语句 4.1条件结构 条件结构包括顺序结构和选择结构.顺序结构在程序执行中没有跳转和判断,知道程序结束为止.选择结构包括 if 语句,if-else 语句,switch 语句,在程序执行过程中可以改变程序的执行流程. 4.1.1 if 语句 if 语句是条件判断后再处理的一种语法结构 if(条件表达式){ //条件成立后执行 一条或多条语句 } //条件表达式的值只能是 boolean 类型 false / true 4.1.2 if-els

浅谈java中循环结构之一——————while的简单应用

1.什么是循环? 有时您希望代码在工作完成之前反复做同一件事.可使用循环 实现此目的.循环是一种编程结构,它在满足某个特定条件(或某组条件)时反复执行.循环结构就是为了解决重复代码或者是有规律的代码. 2.今天先简单谈谈while的简单应用 先谈谈while循环的三要素 while循环的三要素:(1)初始化变量(2)循环条件(3)改变循环变量的值 当你要用while循环时主要知道这三个要素什么,那么循环起来就得心应手了. 下面是while循环语法和特点:                    

java基础循环

一. while循环 示例1:.循环打印1到10之间的值 public class Test1 { public static void main(String[] args) { int i=1;//1.定义循环增量,循环初始值 //2.定义循环结构 while(i<=10){ System.out.println(i); //3.改变循环条件 i++; } } } 示例2:.询问张涛任务是否完成 import java.util.Scanner; public class Test2 { p