JAVA基础必备(四)——循环体(一)
来源:互联网 发布:更新linux swap 编辑:程序博客网 时间:2024/05/05 06:37
这个循环(一)主要讲解下如何利用循环打印图形,下面是正文——
1.通过键盘输入数据:
a)import java.util.Scanner包;
b)在主函数中Scanner s = new Scanner(System.in);
c)s.nextInt(),or s.nextDouble();
2.选择结构:
a)if(条件){//语句,如果只有一个语句{}可省略}
b)if(){}else if(){}...
c)switch(变量){case...常量 default:}注意:1.break关键字如果没有break,匹配上一个之后会默认往后匹配直到有break为止;break switch{}继续后面的语句;2.default语句最多只能出现一次,可以没有。可以出现任何的位置(和case并列即可)其作用相当于else。。。3.switch小括号中的变量类型,只能是如下类型:byte、short、int、char、枚举(不是基本数据类型)
3.循环结构:
for(表达式1;表达式2;表达式3)
{
//循环体
}
{
//循环体
}
break 跳出for循环 --->for结构结束
contiune 结束本次循环进行下一次---》去第三个表达式;
contiune 结束本次循环进行下一次---》去第三个表达式;
练习:形成for循环思想
package xunhuanti;import java.util.Scanner;public class Shuru {private int s,a,b,c;private int sum = 0;private Scanner sc;/** * @param args * 输入一个年龄,如果大于60则输出可以免费进入 */ private void age(){ sc = new Scanner(System.in); System.out.println("请输入年龄:"); s = sc.nextInt(); while(s<=60){ System.out.println("年龄不够免费条件!请重新输入:"); s = sc.nextInt(); } System.out.println("可以免费进入"); } /** * 通过键盘输入三个数字,找出其中的最大值 */ private void threeMax(){ sc = new Scanner(System.in); System.out.println("请输入第一个数字:"); a = sc.nextInt(); System.out.println("请输入第二个数字:"); b = sc.nextInt(); System.out.println("请输入第三个数字:"); c = sc.nextInt(); if(a>b){ s = b; b = a; a = s; } if(a>c){ s = c; c = a; a = s; } if(b>c){ s = c; c = b; b = s; } System.out.println(a+"/"+b+"/"+c); } /** * 通过键盘输入年月日, 计算该日期在这一年已经过了多少天 */ public void day(){ sc = new Scanner(System.in); System.out.println("请输入年:"); a = sc.nextInt(); System.out.println("请输入月:"); b = sc.nextInt(); System.out.println("请输入日:"); c = sc.nextInt();// 过了多少天其实本质就是叠加和// 那么以月为变量进行统计,当月不算,过去的月数天数+当月的天数 switch(b-1){// 若b当月为12月份,则b-1=11月份 case 11: sum += 30; case 10: sum += 31; case 9: sum += 30; case 8: sum += 31; case 7: sum += 31; case 6: sum += 30; case 5: sum += 31; case 4: sum += 30; case 3: sum += 31; case 2: if(a%4==0&&a%100!=0||a%400==0){ sum += 29; }else sum += 28; case 1: sum += 31; } sum += c; System.out.println("这一年已经过了"+sum+"天!"); if(a%4==0&&a%100!=0||a%400==0){ s = 366; }else s = 365; System.out.print("这一年还剩下"+(s-sum)+"天"); } /** * 读入一个三位数,计算其各位数字之和。例如:123各位数字之和为6 */ private void threeNumSum_print(){ System.out.println("计算三位数各位数字之和,请输入要计算的三位数:"); sc = new Scanner(System.in); s = sc.nextInt(); threeNumSum(); } private void threeNumSum(){// 既然要输入三位数,那么就不让输入超过三位数 if(s<100||s>999){ System.out.println("输入有误,请输入三位数:"); s = sc.nextInt(); threeNumSum(); }else { int one = s%10;//个位数 int two = s/10%10;//十位数 int three = s/100;//百位数 s = one + two + three; System.out.println("个位="+one+"十位="+two+"百位="+three+"该数个位之和:"+s); System.out.println("请继续输入:"); s = sc.nextInt(); threeNumSum(); } } /** * 1-100之和 */ private void sum100(){ for(int i=1;i<=100;i++){ sum += i; } System.out.println("1-100和="+sum); }/** * 求1-100偶数之和, */ private void oushu(){ for(int i=1;i<=100;i++){ if( i%2==0){ sum += i; } } System.out.println("偶数和:"+sum); for(int i=2;i<=100;i+=2){ s += i; } System.out.println("另种方法的偶数和:"+s); } /** * 求1到100之间能被3整数但不能被5整除的所有数字之和 * @param args */ private void intThreeFive(){ for(int i=1;i<=100;i++){ if (i%3==0&&i%5!=0){ System.out.println(i); sum += i; } } System.out.println("sum="+sum); } /** * 求1!+2!+3!+4!+...+10! n! = (n-1)!*n 最好用long型 10! = 1*2*3*4*..*10 第一循环 要求得1的阶乘 并累计为和 第二循环 得到2的阶乘 并累计为和 第三循环 得到3的阶乘 并累计为和 ... 第十循环 得到10的阶乘 并累计为和 * @param args */ private void jieCeng(){ s= 1; for(int i = 1;i<=10;i++){ s *= i; sum += s; } System.out.println("10!sum="+sum); } /** * 通过键盘输入一个数字,打印其所有因子 并对所有因子求和(因子不包含自己) 因子就是能被这个数整除的数字 10的因子有 1 2 5 * @param args */ private void yinZi(){ sc = new Scanner(System.in); System.out.println("请输入:"); s = sc.nextInt();// 一个数除以大于自己一半的数字肯定会有余数的,那么他的因子最大也就是s/2了,自然也就不包括自己了 for(int i = 1;i<=s/2;i++){ if(s%i==0){ sum += i; System.out.println(s+"的因子为"+"("+i+")"); } } System.out.println("因子和="+sum); }/** * 通过键盘输入一个数字,判断该数字是否为素数 指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数(不包括0)整除的数。 拿到一个数字后就从2开始除一直除到n-1如果都有余数, 说明该数字是素数 只要除到n/2即可 * @param args */ private void suNum(){ sc = new Scanner(System.in); System.out.println("请输入:"); s = sc.nextInt(); for(int i=s-1;i>1;i--){ if(s%i!=0){ System.out.println(s+"为素数"); }else System.out.println(s+"不为素数"); } } /** * 打印100-1000所有的素数 * @param args */ private void printSuNum(){ int j; for(int i=100;i<=1000;i++){// 我拿这个数一直除以2,除到这个数的一半就可以了,看效果 for( j=2;j<=i/2;j++){ if(i%j==0){ break; } } System.out.println(j); if(j>i/2){ System.out.println(i); } } } /** * * ** *** **** *****通过键盘输入行数 打印图形有行有列,就是两层循环 外层循环控制行,内层循环控制列 打印九九乘法表! * @param args */ private void jiujiu(){ for(int i = 1;i<=9;i++){ for(int j = 1;j<=i;j++){ System.out.print(j+"*"+i+"\t\t"); } System.out.println(); } } /** ******** ******* ****** ***** **** *** ** * 打印图形的习惯--》上面宽外层循环从大开始每行都有若干个空格和若干个星号组成,需要有一个循环来控制空格,还要有一个循环控制星号内层循环的控制一定和外层循环是相关的 * @param args */ private void bigTu(){ for(int i = 10;i>=1;i--){//控制行 for(int j=1;j<=10-i;j++){//控制列 System.out.print(" "); } for(int k=1;k<=i;k++){ System.out.print("*"); } System.out.println(); } }/* * *** ************ ********* ******* ***** *** **/ private void duichen(){ for(int i = 1;i<=5;i++){// 先打印上半部分 for(int j=1;j<=5-i;j++){ //控制空格的输出,刨除需要输出*的位置 System.out.print(" "); } for(int k = 1;k<=2*i-1;k++){//什么位置需要输出*呢? System.out.print("*"); } System.out.println(); } for(int m=4;m>=1;m--){ for(int g=1;g<=5-m;g++){ System.out.print(" "); } for(int n=1;n<=2*m-1;n++){ System.out.print("*"); } System.out.println(); } } /** A BBB CCCCCDDDDDDDEEEEEEEEE * @param args */ private void ziMuTa(){// 上面窄,外层循环从小开始,那么需要1个循环控制空格,再需要一个循环控制字母; for(int i=1;i<=5;i++){// 首先控制空格,空格是由大到小,那么就从大开始循环打印空格 for(int j=9-i;j>=1;j--){ System.out.print(" "); }// 接下来字母是从小到大的排列,那么就从小开始循环 for(int m=1;m<=2*i-1;m++){ System.out.printf(" %c",i+64); } System.out.println(); } } /** * * @param args 1 121 12321 1234321 12345432112345654321 */ private void numTa(){ int c = 0;// 问题分析:1.外层循环为6层,2.然后对每行的空格进行控制输出;3.同时再对数字进行控制 for(int i = 1;i<=6;i++){ for(int j=1;j<=6-i;j++){ System.out.print(" "); } for(int k = 1;k<=2*i-1;k++){// 那么肯定跟k有关系,k是什么,k是数字de循环,来看一下层数,与每行数字个数和数字本身之间的关系,很好的找出了规律 /*for(int m=k;m>i;m--){ //对数字本身关系做个循环找规律 System.out.print(k-i); }*/ if(k>i){ System.out.print(2*i-k); }else System.out.print(k); } System.out.println(); } } public static void main(String[] args) {// TODO Auto-generated method stubShuru shuru = new Shuru();// shuru.age();//shuru.threeMax();// shuru.day();//shuru.threeNumSum_print();//shuru.sum100();//shuru.oushu();//shuru.intThreeFive();//shuru.jieCeng();//shuru.yinZi();//shuru.suNum();//shuru.printSuNum();//shuru.jiujiu();//shuru.bigTu();//shuru.duichen();//shuru.ziMuTa();shuru.numTa();}}
0 0
- JAVA基础必备(四)——循环体(一)
- JAVA基础必备(四)——循环体(二)
- JAVA基础必备(一)——JAVA环境
- Java基础必备(六)——数组(一)
- JAVA基础必备(十二)—— 反射(一)
- 黑马程序员—2—Java基础:循环体的区别于联系和学习心得体会
- Java基础应用之循环控制(终止循环体)
- Java基础应用之循环控制(循环体的过滤器)
- 【原创】循环体并行优化(一)——循环迭代空间的仿射变换
- 网络工程师必备基础(一)
- Java基础必备(七)——数组(二)
- JAVA基础必备(十三)——反射(二)
- JAVA基础必备(二)——数据类型
- JAVA基础必备(三)——运算符
- Java基础必备(五)——函数
- JAVA基础必备(八)——面向对象
- JAVA基础必备(十)——异常
- JAVA基础必备(十一)——正则表达式
- 获取Yahoo天气相关总结
- SAP Solution key
- Map线程安全几种实现方法
- hadoop join之semi join
- Linux命令之读取输入-read
- JAVA基础必备(四)——循环体(一)
- CoreData
- 用PL/SQL Developer 把oracle表里的数据导成insert语句(不积跬步,无以至千里)
- 游戏服务器之网格视野列表
- struts2配置文件详解2
- 《黑马程序员》 日期与毫秒值互转 String类型日期与Date对象互转
- 【笔记】2013-07
- 数据类型不匹配引起的bug
- 空格带给我我的血的教训