一.多重循环嵌套
1.循环可以任意次数嵌套
2.外层循环每执行一次,里层循环就执行一遍
二.二维数组
1.定义:一维数组中存放的也是数组
2.声明:int[][] nums = new int[5][5];
3.使用:nums[0][0] = 1; 我们可以将第一个下标理解为行数,第二个下标理解为列数
三.引用数据类型和基本数据类型的区别
1.基本数据类型存放的是数据,引用数据类型存放的是内存地址
2.基本数据类型赋值的话传递的是数据,而引用数据类型传递的是地址
四.例子
package com.demo1030;
import java.util.Scanner;
public class Demo {
//例题:输出1--100的数字,要求每行输出10的数字
// public static void main(String[] args) {
// int num = 1;
// for(int i=0;i<10;i++){//行
// for(int j=0;j<10;j++){//列
// System.out.print(num +"\t");
// num++;
// }
// System.out.println();
// }
// }
/*2。打印输出如下图形:要求,用户输入行数,按照行数打印图形
*
**
***
****
*****
******
*******
********
**/
// public static void main(String[] args) {
// Scanner scs = new Scanner(System.in);
// System.out.println("请输入行数:");
// int count = scs.nextInt();
// for(int i=0;i<count;i++){//行 输出换行
// for(int j=0;j<=i;j++){//列 输出*
// System.out.print("*");
// }
// System.out.println();
// }
// }
/**
* 3.输出乘法口诀表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
.......
1*9=9 ....................9*9=81
*/
// public static void main(String[] args) {
// for(int i=1;i<=9;i++){//行 输出换行
// for(int j=1;j<=i;j++){//列 输出*
// System.out.print(i+"*"+j+"="+i*j+"\t");
// }
// System.out.println();
// }
// }
/**
* 4.输出如下图形
*
***
*****
*******
*********
***********
*/
// public static void main(String[] args) {
// for(int i=1;i<=6;i++){//行
// for(int j=6;j>i;j--){//空格
// System.out.print(" ");
// }
// for(int k=1;k<=2*i-1;k++){//输出*
// System.out.print("*");
// }
// System.out.println();
// }
// }
//5.声明一个10行10列的二维数组,把里面的所有元素赋值为1,然后输出
// public static void main(String[] args) {
// int[][] nums = new int[10][10];
// for (int i = 0; i < nums.length; i++) {
// for(int j=0;j<nums[i].length;j++){
// nums[i][j] = 1;
// }
// }
//
// for (int i = 0; i < nums.length; i++) {
// for(int j=0;j<nums[i].length;j++){
// System.out.print(nums[i][j]+"\t");
// }
// System.out.println();
// }
// }
//基本数据类型和引用数据类型的区别
// public static void main(String[] args) {
// int xm = 100;
// int xh =200;
//
// xm = xh;
// xm = 1000;
//
// System.out.println("xm="+xm);
// System.out.println("xh="+xh);
//
// int[] xxm = {100};
// int[] xxh = {200};
//
// xxm = xxh;
//
// xxm[0] = 1000;
// System.out.println("xxm="+xxm[0]);
// System.out.println("xxh="+xxh[0]);
// }
//6.声明一个9行9列的二维数组,将1-81的数字填入到数组中
// a.先输出所有元素的值
// b.求两条对角线上的元素之和
// public static void main(String[] args) {
// int[][] nums = new int[9][9];
// //存放1-81数字
// int num=1;
// for (int i = 0; i < nums.length; i++) {
// for (int j = 0; j < nums[i].length; j++) {
// nums[i][j] = num;
// num++;
// }
// }
//
// //输出
// for (int i = 0; i < nums.length; i++) {
// for (int j = 0; j < nums[i].length; j++) {
// System.out.print(nums[i][j]+"\t");
// }
// System.out.println();
// }
//
// //计算对角线元素之和
// int sum1 = 0;//对角线1
// int sum2 = 0; //对角线2
// for (int i = 0; i < nums.length; i++) {
// for (int j = 0; j < nums[i].length; j++) {
// if(i==j){//第一条对角线
// sum1+=nums[i][j];
// }
// if(i+j==nums.length-1){
// sum2+=nums[i][j];
// }
// }
// }
//
// System.out.println(sum1);
// System.out.println(sum2);
// }
}
/**
* 1.用户输入行数,要求行数必须是奇数,如果不是让用户重新输入。
* 然后根据行数打印输出菱形
*
***
*****
*******
*********
*******
*****
***
*
*/
package class1030;
import java.util.Scanner;
public class Test0201 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int nums,nums2;
Scanner sc=new Scanner(System.in);
do{
System.out.println("请输入一个奇数");
nums=sc.nextInt();
if(nums<0||nums%2!=1){
System.out.println("输入有误,请重新输入");
}
}while(nums<0||nums%2!=1);
nums2=nums/2+1;
for(int i=1;i<=nums2;i++)
{
for(int j=1;j<=nums2-i;j++)
{
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++)
{
System.out.print("*");
}
System.out.println();
}
nums2=nums/2;
for(int i=1;i<=nums2;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print(" ");
}
for(int k=1;k<=2*(nums2-i)+1;k++)
{
System.out.print("*");
}
System.out.println();
}
}
}
/**
* 2.用户输入一个正整数,做因式分解:例如
* 输入100 输出100=2*2*5*5
* 输入90 输出90=2*3*3*5
* 输入13 输出13=1*13
*/
package class1030;
import java.util.Scanner;
public class Test0202 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个正整数");
int num=sc.nextInt();
int i;
int num1=num;
System.out.print(num+"=");
//最小公因数i是这个数本身时跳出循环
while(num!=1)
{
//从2开始整除,找到最小公因数时就跳出循环,每次得到最小公因数i
for(i=2;i<num;i++)
{
if(num%i==0)
{
break;
}
}
//如果最小公因数i是这个数本身时,为质数,本轮循环结束后将跳出while循环
if(i==num1)
{
System.out.print("1*");
}
//每次输出最小公因数i
System.out.print(i);
//得到除以最小公因数i后的值,继续判断是否还有最小公因数
num=num/i;
//当最小公因数i是不是这个数本身时,输出乘号
if(num!=1)
{
System.out.print("*");
}
}
}
}
/*
* 3.打印输出杨辉三角形(10行):
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
.........
*/
package class1030;
public class Test0203 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[][]=new int[10][];
for(int i=0;i<arr.length;i++){
arr[i]=new int[i+1];
for(int j=0;j<arr[i].length;j++){
if(j==i||j==0){
arr[i][j]=1;
}else{
if(j<i){
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
}
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}
原文:https://www.cnblogs.com/wlxslsb/p/10353220.html