java键盘录入练习题

1、键盘录入行数和列数,输出对应的星形

package day06;
//1、键盘录入行数和列数,输出对应的星形
import java.util.Scanner;
/**
 * 
 * @来源 www.629niuniu.com
 *
 */

public class Test1 {


public static void main(String[] args) {
// TODO Auto-generated method stub
int hang;
int lie;
Scanner input=new Scanner(System.in);
System.out.println("请输入行数");
hang=input.nextInt();
Scanner input2=new Scanner(System.in);
System.out.println("请输入列数");
lie=input2.nextInt();
for(int i=0;i<hang;i++){
for(int j=0;j<lie;j++ ){

System.out.print("*");
}
System.out.println();
}

}


}

2、键盘录入一个数据n(1<=n<=9),输出对应的nn乘法表

package day06;
/**
 * 
 * @来源 www.629niuniu.com
 *
 */

import java.util.Scanner;


//2、键盘录入一个数据n(1<=n<=9),输出对应的nn乘法表
public class Test2 {


public static void main(String[] args) {
// TODO Auto-generated method stub
int n;
Scanner input=new Scanner(System.in);
System.out.println("请输入一个数据n(1<=n<=9)");

for( n=input.nextInt();n>0;n--){
for( int i=1;i<=n;i++){
System.out.print(n+"*"+i+"="+n*i+" ");
}
System.out.println();
}

}


}

3、键盘录入两个数据,返回两个数中的较大值

package day06;

/**
 * 
 * @来源 www.629niuniu.com
 *
 */
import java.util.Scanner;


//3、键盘录入两个数据,返回两个数中的较大值
public class Test3 {


public static void main(String[] args) {
// TODO Auto-generated method stub
int max;
int a;
int b;
Scanner input1=new Scanner(System.in);
System.out.println("请输入第一个数据:");
a=input1.nextInt();
Scanner input2=new Scanner(System.in);
System.out.println("请输入第二个数据");
b=input2.nextInt();
max=a>b?a:b;
System.out.println("这两个数中,最大的数是"+max);

}


}

4、键盘录入两个数据,比较两个数是否相等


package day06;

/**
 * 
 * @来源 www.629niuniu.com
 *
 */
import java.util.Scanner;


//4、键盘录入两个数据,比较两个数是否相等
public class Test4 {


public static void main(String[] args) {
// TODO Auto-generated method stub
int a;
int b;
Scanner input1=new Scanner(System.in);
System.out.println("请输入第一个数据:");
a=input1.nextInt();
Scanner input2=new Scanner(System.in);
System.out.println("请输入第二个数据");
b=input2.nextInt();
if(a==b){
System.out.println("这两个数相等");
}else{
System.out.println("这两个数不相等");
}


}


}

5、键盘录入三个数据,返回三个数中的最大值

package day06;
/**
 * 
 * @来源 www.629niuniu.com
 *
 */

import java.util.Scanner;


//5、键盘录入三个数据,返回三个数中的最大值
public class Test5 {


public static void main(String[] args) {
// TODO Auto-generated method stub
int a;
int b;
int c;
int max;
Scanner input1=new Scanner(System.in);
System.out.println("请输入第一个数据:");
a=input1.nextInt();
Scanner input2=new Scanner(System.in);
System.out.println("请输入第二个数据");
b=input2.nextInt();
Scanner input3=new Scanner(System.in);
System.out.println("请输入第二个数据");
c=input3.nextInt();
if(a>b){
max=a;
}else{
max=b;
}
if(c>max){
max=c;
}

System.out.println("最大值是"+max);


}


}

### 黑马程序员 Java 练习题 #### 字符串遍历练习 通过键盘录入一个字符串并逐个打印字符可以加深对`String`类的理解以及掌握基本的控制台输入输出操作。 ```java import java.util.Scanner; public class StringTraversal { public static void main(String[] args) { // 创建扫描器对象用于接收用户输入 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符串"); // 接收用户输入的字符串 String inputStr = scanner.next(); // 遍历字符串中的每一个字符并打印出来 for (int index = 0; index < inputStr.length(); index++) { char currentChar = inputStr.charAt(index); System.out.println(currentChar); } } } ``` 此程序展示了如何利用`Scanner`类获取用户的输入,并运用`length()`方法来确定字符串长度,再借助于`charAt(int)`函数逐一访问各个位置上的字符[^1]。 #### 值传递机制理解 为了更好地了解Java中参数按值传递的特点,下面的例子定义了一个简单的整数变量修改过程: ```java public class ValuePassingExample { public static void main(String[] args) { int originalNumber = 100; System.out.println("调用change方法前:" + originalNumber); // 修改传入数值并通过返回更新原变量 originalNumber = modifyValue(originalNumber); System.out.println("调用modifyValue方法后:" + originalNumber); } private static int modifyValue(int valueToChange) { valueToChange = 200; return valueToChange; } } ``` 这段代码说明了即使是在另一个方法内部改变了形参的值,在实际应用中仍需显式地将新值赋给实参才能看到变化效果[^2]。 #### 多线程同步问题处理 当涉及到多线程环境下的资源竞争时,正确使用锁机制至关重要。这里给出了一段关于生产者消费者模式下条件变量使用的片段作为例子: ```java class ProducerConsumerProblem { private final Object lock = new Object(); boolean flag = false; public void produce(String name) throws InterruptedException { synchronized (lock) { try { while (!flag) { System.out.println(Thread.currentThread().getName() + "...等待.." + name); lock.wait(); } // 执行具体的生产和消费逻辑 flag = false; lock.notifyAll(); } catch (Exception e) { e.printStackTrace(); } finally { lock.notifyAll();// 确保释放锁的动作被执行 } } } } ``` 上述实现强调了在并发场景里恰当管理共享数据的重要性,特别是要保证临界区的安全性和效率[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值