Java SE 基础知识(4)
for 循环
例一:求1-100的总和
public class forthday3 {
public static void main(String[] args) {
int sum=0;
for(int i=0;i<=100;i++){
sum+=i;
}
System.out.println("1-100的数字和为:"+sum);
}
}
例二:求1-100的偶数和
public class forthday2 {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println("1-100的偶数和为:" + sum);
}
}
例三:求1-100的奇数和
public class forthday4 {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i <= 100; i++) {
if (i % 2 == 1) {
sum += i;
}
}
System.out.println("1-100的奇数和为:" + sum);
}
}
例四:用for循环找出三位水仙花数
package com.java.hyq;
import javax.xml.transform.Source;
public class forthday5 {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int a = i / 100;//百 i/1%10;
int b = (i-a*100)/10;//十 i/10%10;
int c = (i-a*100-b*10);//个 i/100%10;
int shui=a * a* a + b * b* b + c * c* c;
if (i ==shui ) {
System.out.println("水仙花数有 "+i);
}
}
}
}
Java 第四天课程
while循环
while (){
}
Do While
先执行一次,再判断条件是否成立,如果成立立即继续循环,不成立循环结束;
如果不知道循环次数,可以选择while 循环,但是得知道循环结束的条件;
用Java打印99乘法表
- 难点
1.注意i j 分别代表的含义;
2.注意在循环结束的合适的位置加入换行符号
3."\t"空一个 tab 位 可以直接换行 "\n"也可以换行
4.//一定注意for 循环条件之后一定不要加分号,软件并不报错,但是循环不执行!
package javaday415h;
public class xunhuan {
public static void main(String[] args) {
//循环嵌套 外层循环控制行数,内层循环控制列数
//打印图形题
int i=1;
int j=1;
for( i=1;i<=9;i++)
{
System.out.println();
for(j=1;j<=i;j++){
System.out.print (j+"*"+i+"="+i*j+" ");
}
}
}
}
快捷键生成循环
//如果有多层循环嵌套,你可以给循环起一个别名,然后你可以通过别名去结束某个循环;
1.正向生成十次循环
//10.fori
for (int i = 0; i < 10; i++) {
}
2.反向生成十次循环
//10.forr
for (int i = 10; i > 0; i--) {
}
写循环时的易错点总结
一定注意for 循环条件之后一定不要加分号,软件并不报错,但是循环不执行!
Break语句的使用
package javaday415h;
public class kongzhixunhuan {
public static void main(String[] args) {
//原定计划循环十次,但是循环到第五次时,结束循环;
for ( int i = 1; i < 10; i++) {
if(i==5){
break;//中断循环,他的应用场景是在switch 语句中,或循环语句中应用,离开这两个场景没有;
} System.out.println(i);
}
}
}//打印到1 2 3 4
CONTINUE语句的使用
略过一次循环,然后继续。离开循环没有意义,当然要使用if 语句定义略过循环的条件;
package javaday415h;
public class kongzhixunhuan {
public static void main(String[] args) {
for ( int i = 1; i < 10; i++) {
if(i==5){
continue;//略过满足if条件中的循环
} System.out.println(i);
}
}
}//打印到1 2 3 4 6 7 8 9
package javaday415h;
public class kongzhixunhuan {
public static void main(String[] args) {
for ( int i = 1; i <= 10; i++) {
if(i%2==1){
continue;
} System.out.println(i);
}
}
}//打印到2 4 6 8 10
练习题
习题一:输出7次
package javaday415h;
public class kongzhixunhuan {
public static void main(String[] args) {
for ( int i = 1; i <= 10; i++) {
if(i%3==0){
continue;
}
System.out.println("java基础班");
}
}
}
习题二:输出2次
package javaday415h;
public class kongzhixunhuan {
public static void main(String[] args) {
for ( int i = 1; i <= 10; i++) {
if(i%3==0){
break;
}
System.out.println("java基础班");
}
}
}
习题三:输出13次
方法概述和语言说明
package javaday415h;
public class kongzhi2 {
//主方法 作为程序的入口
public static void main(String[] args) {
//方法 :完成一个特定功能的代码块;
//就是把一段代码封装起来以实现重复调用
//方法的定义语法 权限修饰符 状态修饰符 返回值类型 方法名(参数列表){方法体}
//方法是定义在类(class)中的
//方法和方法是平级关系,不能嵌套定义
//方法不调用不执行!!!!!!!!!!!!
send();//调用方法
}
//定义自己的方法
public static void send( ){
//实现功能的代码,方法体
System.out.println("发射打僵尸的炮弹");
}
}
形参与实参 在主函数中的调用
package javaday415h;
public class kongzhi3 {
public static void main(String[] args) {
add();
//在调用带有参数的方法时,必须传入和形参类型,形参个数一致的参数(实参)
//形参是int 类型,传参数时,可以传入 byte short int
//当然 如果实参类型和形参类型保持一致就一定不会出错!
add2(20,30);
//实参可以传变量,也可以传常量;
int a=20;
int b=30;
add2(a,b);
}
public static void add(){
int a=10;
int b=20;
System.out.println(a+b);
}
public static void add2(int x,int y){
//形参:定义在方法括号中的参数,我们叫做形式参数,作用就是接收,调用方法时,传过来的实际参数;
//例如 int x int y;
int sum=x+y;
System.out.println(sum);
}
}
主函数调用自定义方法时,可以设置返回值的类型
package javaday415h;
public class fangfa2 {
public static void main(String[] args) {
int fanhui=add(20,30);//此处的返回值不一定和方法中的sum 定义相同;
System.out.println(fanhui);
}
//方法的返回值类型,void就是方法没有明确的返回值类型
//一旦我们明确了这个方法的返回值类型,那么这个方法,必须使用return 关键字,返回一个与明确类型一致的值;
//如题 void 可以改成 int
//当我们调用这个方法时,如果这个方法有返回值,我们就可以接收返回值;
//这个方法返回什么类型,就用什么类型接收;
public static int add(int x,int y){
int sum=x+y;
System.out.println(sum);
return sum;//返回结果 谁调用就把这个值返回给谁;
}
}
Return
package javaday415h;
import javax.sound.midi.Soundbank;
public class fangfa3 {
public static void main(String[] args) {
//当我们设计一个方法时,得考虑这个方法要不要参数,要几个参数,参数类型是什么,
// 以及要不要返回值,返回值的类型是什么?
}
public static int add(int x,int y) {
//return 结束方法 返回结果
return x+y;
//System.out.println(x+y); //return 后的这条语句并不执行;
}
public static void add1(int x,int y) {
//return 结束方法 返回结果
// return x+y; 当返回值类型为void 时,return 可以省略不写
}
}
练习题
习题一
package javaday415h;
import java.util.Scanner;
public class fangfa3 {
//如果有多层循环嵌套,你可以给循环起一个别名,然后你可以通过别名去结束某个循环;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要打印的行数");
int i = sc.nextInt();
add(i);
}
public static void add( int i ) {
for ( int x = 1; x <= i; x++) {
System.out.println();
for (int y = 1; y <= x; y++) {
System.out.print(y + "*" + x + "=" + x * y + " " + "\t");
// }
}
}
}
}
习题二
package javaday415h;
//判断两个数是否相等
public class mytext1 {
public static void main(String[] args) {
boolean b = equals(20,25);
if(b){
System.out.println("相等");
}
System.out.println("不等");
}
public static boolean equals(int a ,int b) {
return a==b;
}
}
习题三
输入两个数判断是否相等
package org.westos.demo;
import java.util.Scanner;
public class MyTest4 {
public static void main(String[] args) {
//当要设计一个方法时,得考虑,这个方法要不要参数,要几个参数。参数类型是什么。要不要返回值,返回值类是什么?
//获取两个数的最大值。设计成一个方法。要参数 要两个 参数类型设计为double 要返回值,返回值类型double.
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数");
//int x=sc.nextInt();
double x = sc.nextDouble();
System.out.println("请输入第一个数");
//int y = sc.nextInt();
double y = sc.nextDouble();
double max = getMax(x, y);
System.out.println("最大值是"+max);
}
public static double getMax(double a,double b){
double max=a>b?a:b;
return max;
}
public static int add(int x, int y) {
//return:结束方法,并返回结果
return x + y;
}
//当你的方法的返回值类型是void时,那么这个return可以省略不写。
public static void show(int x, int y) {
// return:结束方法
// return;
}
}
### 方法重载
方法重载,允许一个类中,可以定义多个同名方法,只要他们的参数个数,或参数类型不同即可;主方法在调用的时候,会自动匹配;
不拿返回值类型来区分,和返回值类型没有关系;
package javaday415h;
public class mytest2 {
//求多个数相加
public static void main(String[] args) {
int sum1=add(10,20);
int sum2=add(10,20,30);
int sum3=add(10,20,30,40);
//方法重载,允许一个类中,可以定义多个同名方法,只要他们的参数个数,或参数类型不同即可;
}
public static int add(int a ,int b){
return a+b;
}
public static int add(int a ,int b,int c){
return a+b+c;
}
public static int add(int a ,int b,int c,int d){
return a+b+c+d;
}
}