循环嵌套
package day03;
public class Test{
public static void main(String[] args){
/*循环嵌套:在循环中再嵌套循环
例1:利用循环输出一个****
****
****
****
代码如下:*/
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print("*");
}
System.out.println();//外循环循环一次换行(控制输出格式)
}
}
}
//例2:输出一个九九乘法表
public class Test3 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j =1; j <=i; j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
//例3:求100以内的质素
public class Test3 {
public static void main(String[] args) {
for (int i = 2; i < 101; i++) {
boolean res = true;//标记作用
for (int j = 2; j < i; j++) {
if (i % j == 0) {
res = false;
break;
}
}
if (res) {
System.out.println(i+"为质数");
}
}
}
}
/*在内层循环中使用break关键字可以结束指定的外层循环*/
//例4
public class Test3 {
public static void main(String[] args) {
out:for (int i = 0; i < 3; i++) { //out为标记点
for (int j = 0; j < 3; j++) {
if (j == 2) {
break out;//打破外层循环
}
System.out.println("j=" + j);
}
System.out.println("i=" + i);
}
}
}
//使用return也可以结束多层循环
//例5:
public class Test3 {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 2) {
return ;
}
System.out.println("j=" + j);
}
System.out.println("i=" + i);
}
}
}
输出结果与例4一样:
j=0
j=1
Java中的方法
Java中的方法类似于其他(c)语言中的函数,解决某一类问题的代码组合。
【修饰符】【返回值类型void】方法名(形参类型 形参名…)
{
方法体
[return 值]
}
主方法,Java程序入口
public class Test3{
public static void main(String[] args){
//调用方法,创建方法所在类的对象
Test3 a=new Test3();
byte r=5,c=3;
a.printStar(r,c);//注意数据类型
a.method1();
int res=a.max(10,5);
System.out.print(res);
//创建打印星型的方法
public void printStar(int row,int col){
for (int i = 0; i <row; i++) {
for(int j=0;j<col;j++){
System.out.print("*");
}
System.out.println();
}
}
//创建methond1方法
public void method1(){
System.out.println("方法的测试");
//return;//return 语句后面如果没有值,只是让方法终止
数组:储存一组类型相同的数据,在内存空间中是连续的,长度一旦给定就不能改变了。
数组属于引用数据类型(对象);
public class Test3{
public static void main(String[] args){
//声明数组
//int 指的是数组中储存的数据类型为int;
int[]a;//第一种
int a[];//第二种;
/*一般建议使用第一种,防止数据类型混淆;
例如:int []a,b,c;表示a,b,c均为数组
而int a[],b,c;则表示a为数组,b,c,不为数组;*/
//创建数组
int []ary0=new int[2];//动态创建;10表示数组的储存空间长度;
System.out.println(Arrays.toString(ary0));
/*结果为[0,0]
默认值:
布尔类型为:false;char类型为空格;引用类型为:NULL;*/
//第二种创建类型
int [] ary1=new int[]{1,2};//静态创建
//第三种创建类型
int []arry2={1,2};
/*两种常见类型没多大区别,相比于第二种创建类型一般使用第三种创建类型*/
}
}
数组元素访问——遍历
public class Test3{
public static void main(String[] args){
/*数组元素的访问:通过索引访问;(每个元素的位置编号)
索引的特点为:整数(int),从0到长度-1;
数组的长度是有限的,上限为int的最大值减8;*/
int []a=new int[3];
for(int i=0;i<3;i++){
a[i]=i+2;
}
System.out.println(Arrays.toString(a));
}
}
/*输出结果为[2,3,4]*/
//取出数组中的元素;
int []b={1,2,3,4};
//方式一:for循环
for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}
/*输出结果为1 2 3 4;*/
//方式二:增强for循环,将数组b中的数全部赋给t;只对元素遍历时较方便;
/*for(声明一个变量用来接收每次从数组中取出的元素,变量类型与数组类型一致:需要遍历的数组),每循环一次从数组中取出对应的元素赋给变量,直到没有元素*/
for(int t:b){
System.out.println(t);
}
/*输出结果与方式一样*/
冒泡排序
public class Test3{
public static void mian(String[] args){
/*冒泡排序:
每次取出相邻的两个元素进行比较,将较大数向后移,直到所有的数比较完*/
int []a={4,3,2,1};
/*
第一次 3 2 1 4
第二次 2 1 3 4
第三次 1 2 3 4
*/
for (int i = 0; i < b.length-1; i++) {//外层循环:控制循环次数
for (int j = 0; j <b.length-1-i; j++) {//内层:控制每次比较次数
if (b[j]>b[j+1]){
int temp=b[j+1];
b[j+1]=b[j];
b[j]=temp;
}
}
}
System.out.println(Arrays.toString(b));
}
}
/*结果为[1,,2,3,4]*/