JAVA入門編程題目求高手解答,指出我的錯(cuò)誤并怎么改,謝謝!
題目:折扣計(jì)算(普通顧客購(gòu)物滿100元打9折;會(huì)員購(gòu)物打8折;會(huì)員購(gòu)物滿200元打7.5折)利用嵌套if結(jié)構(gòu)。
運(yùn)行后能有上圖效果。
我的代碼:
import java.util.Scanner;
public class zuoye1
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.println("請(qǐng)輸入是否是會(huì)員:是(y)/否(n)");
String a=input.next();
System.out.println("請(qǐng)輸入購(gòu)物金額");
double money=input.nextDouble();
if(a.equals(a))
{
if(money>=100)
System.out.println(“實(shí)際支付”+money*0.9);
else
System.out.println(“實(shí)際支付”+money);
}else{
if(money>=200)
System.out.println("實(shí)際支付"money*0.75);
else
System.out.println(“實(shí)際支付”+money*0.8);
}
}
}
為什么我一運(yùn)行最后不管是不是會(huì)員最后實(shí)際支付都是System.out.println(“實(shí)際支付”+money*0.9);
請(qǐng)指出我的錯(cuò)誤,并改正!
if(a.equals(a))
這一句,條件永久為true,不管輸入什么都會(huì)進(jìn)入你這個(gè)if的判斷。按你里面正常的邏輯,應(yīng)該是
if(a.equals("n"))
其實(shí)我是建議這樣
if(a.equalsIgnoreCase("n"))
無(wú)視大小寫輸入
為什么呢? 如果一直是一個(gè) 就看這個(gè)的條件啊 a.equals(a);這句恒真啊
基礎(chǔ)JAVA編程題目求大神詳細(xì)解答,謝謝!
題目:利用switch(輸入年和月,輸出對(duì)應(yīng)年月包含的天數(shù))rn注意閏年2月28天,平年29天,要有區(qū)別import java.util.Scanner;
public class Days {
public static void main(String[] args) {
int years,month;
Scanner reader=new Scanner(System.in);
years=reader.nextInt();
month=reader.nextInt();
switch(month){
case 1:System.out.println("31");break;
case 2:if((years%400==0)||(years%100!=0&&years%4==0))
System.out.println("29");
else System.out.println("28");
break;
case 3:System.out.println("31");break;
case 4:System.out.println("30");break;
case 5:System.out.println("31");break;
case 6:System.out.println("30");break;
case 7:System.out.println("31");break;
case 8:System.out.println("31");break;
case 9:System.out.println("30");break;
case 10:System.out.println("31");break;
case 11:System.out.println("30");break;
case 12:System.out.println("31");break;
}
}
}
java編程,這題怎么補(bǔ)充,求解答,謝謝!
見下圖,在要"填空"的地方已經(jīng)填寫完整。
滿意請(qǐng)采納,有問題請(qǐng)追問。
JAVA編程題目,求大神高手幫忙解答下,謝謝!
題目:查詢商品價(jià)格
運(yùn)行后能實(shí)現(xiàn)圖上效果,綠字為用戶輸入,黑子為固定
package org.xxl.demo;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ProtectPrice {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("*****************************************************");
System.out.println("請(qǐng)選擇要購(gòu)買的商品編號(hào):");
List<Product> list = getProductDate() ;
if(list!=null && list.size()>0){
for (Product product : list) {
System.out.print(product.getNumber() + "、" + product.getName() + " ");
}
}
System.out.println();
System.out.println("*****************************************************");
String flag = "" ;
int productNumber = 0 , count = 0;
Product product = null ;
float tranAmt = 0 ;
while(!flag.equals("n")){
productNumber = getProductNumber() ;
switch (productNumber) {
case 1:
count = getProductCount() ;
product = list.get(0) ;
System.out.println(product.getName() + " ¥" + product.getPrice() + " 數(shù)量:" + count + " 合計(jì):" + (float) product.getPrice()*count) ;
tranAmt += (float) (product.getPrice()*count*0.8) ;
break ;
case 2:
count = getProductCount() ;
product = list.get(1) ;
System.out.println(product.getName() + " ¥" + product.getPrice() + " 數(shù)量:" + count + " 合計(jì):" + (float) product.getPrice()*count) ;
tranAmt += (float) (product.getPrice()*count*0.8) ;
break ;
case 3:
count = getProductCount() ;
product = list.get(2) ;
System.out.println(product.getName() + " ¥" + product.getPrice() + " 數(shù)量:" + count + " 合計(jì):" + (float) product.getPrice()*count) ;
tranAmt += (float) (product.getPrice()*count*0.8) ;
break ;
default:
System.out.println("請(qǐng)輸入正確的商品編號(hào)!!");
break;
}
flag = getFlag() ;
if(flag.equals("n")){
System.out.println("折扣:0.8");
System.out.println("應(yīng)付金額:"+tranAmt);
System.out.print("實(shí)付金額:");
String amt = new Scanner(System.in).next() ;
float amts = Float.valueOf(amt) - tranAmt ;
while(amts<0){
System.out.println("應(yīng)付金額:"+tranAmt);
amt = new Scanner(System.in).next() ;
amts = Float.valueOf(amt) - tranAmt ;
}
System.out.println("找錢:" + amts);
System.out.println("");
}
}
}
public static int getProductNumber(){
int number = 0 ;
try{
System.out.print("請(qǐng)輸入商品編號(hào):");
Scanner scanner1 = new Scanner(System.in) ;
if(scanner1!=null){
number = Integer.parseInt(scanner1.next()) ;
}
}catch(Exception e){
System.out.println("請(qǐng)輸入0-9的自然數(shù)字!");
}
return number ;
}
public static int getProductCount(){
int count = 0 ;
try{
System.out.println("請(qǐng)輸入商品數(shù)量:");
Scanner scanner = new Scanner(System.in) ;
if(scanner!=null){
count = Integer.parseInt(scanner.next()) ;
}
}catch(Exception e){
System.out.println("請(qǐng)輸入0-9的自然數(shù)字!");
}
return count ;
}
public static String getFlag(){
String flag = "" ;
System.out.println("是否繼續(xù)(y/n):");
Scanner scanner = new Scanner(System.in) ;
if(scanner!=null){
flag = scanner.next() ;
if(!flag.equals("y") && !flag.equals("n")){
getFlag() ;
}
}
return flag ;
}
public static List<Product> getProductDate(){
List<Product> list = new ArrayList<Product>() ;
Product p1 = new Product(1,"T 恤",245.0f) ;
Product p2 = new Product(2,"網(wǎng)球鞋",570.0f) ;
Product p3 = new Product(3,"網(wǎng)球拍",897.0f) ;
list.add(p1) ;
list.add(p2) ;
list.add(p3) ;
return list ;
}
}
class Product{
int number ;
String name ;
float price ;
public Product() {
}
public Product(int num,String name,float price){
this.number = num ;
this.name = name ;
this.price = price ;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
}
給你看個(gè)簡(jiǎn)單點(diǎn)的把~!
public class C103 {
public static void main(String[] args) {
System.out.println("MyShopping管理系統(tǒng)>購(gòu)物結(jié)算"+"\n");
System.out.println("***************************************************");
System.out.println("請(qǐng)選擇購(gòu)買的商品編號(hào):");
System.out.println("1.T恤 2.網(wǎng)球鞋 3.網(wǎng)球拍");
System.out.println("***************************************************");
int price=0;
int b=0;
int c=0;
int d=0;
int total1=0;
int total2=0;
int total3=0;
double discount=0.8;
String name;
Scanner input=new Scanner(System.in);
System.out.print("輸入請(qǐng)按(y):");
String a=input.next();
while(!a.equals("n"))
{
System.out.print("請(qǐng)輸入商品編號(hào):");
int q1=input.nextInt();
System.out.print("商品數(shù)量:");
int q=input.nextInt();
switch(q1)
{
case 1:
name="T恤";
b=245;
total1=b*q;
break;
case 2:
name="網(wǎng)球鞋";
c=570;
total2=c*q;
break;
case 3:
name="網(wǎng)球拍";
d=320;
total3=d*q;
break;
}
System.out.print("輸入請(qǐng)按(y)退出請(qǐng)按(n):");
a=input.next();
}
System.out.println("折扣:"+discount);
System.out.println("應(yīng)付金額:"+(total1+total2+total3)*discount);
double q3=(total1+total2+total3)*discount;
System.out.print("輸入請(qǐng)實(shí)際付款金額:");
double q2=input.nextInt();
System.out.println("實(shí)付金額:"+q2);
System.out.println("找零:"+(q2-q3));
System.out.println("已經(jīng)退出");
}
}
import java.util.Scanner;
public class Buy {
/**
* @param args
*/
public static void main(String[] args) {
String str = "";
String no = "";
String num = "";
double count = 0.0 ;
double one = 0.0 ;
Scanner sc = new Scanner(System.in);
System.out.println("************************************************");
System.out.println("請(qǐng)選擇購(gòu)買的商品編號(hào):");
System.out.println("1.T恤 2.網(wǎng)球鞋 3.網(wǎng)球拍");
System.out.println("************************************************");
while(!str.equals("n")){
System.out.println();
System.out.println();
System.out.print("請(qǐng)輸入商品編號(hào):");
no = sc.next();
System.out.print("請(qǐng)輸入購(gòu)買數(shù)量:");
num = sc.next();
switch (no.charAt(0)) {
case '1':
one = Integer.parseInt(num) * 245.0;
count += one ;
System.out.println("T恤 ¥245.0 數(shù)量 "+num+" 合計(jì) ¥"+one);
break;
case '2':
one = Integer.parseInt(num) * 570.0;
count += one ;
System.out.println("網(wǎng)球鞋 ¥570.0 數(shù)量 "+num+" 合計(jì) ¥"+one);
break;
case '3':
one = Integer.parseInt(num) * 770.0;
count += one ;
System.out.println("網(wǎng)球拍 ¥770.0 數(shù)量 "+num+" 合計(jì) ¥"+one);
break;
default:
break;
}
System.out.print("是否繼續(xù)(y/n)");
str = sc.next();
}
System.out.println();
System.out.println();
System.out.println("折扣:0.8");
System.out.println("應(yīng)付金額:"+count);
System.out.print("實(shí)付金額:");
String m = sc.next();
System.out.println("找錢:"+(Double.parseDouble(m)-count));
}
}
小白們好好學(xué)吧,這么簡(jiǎn)單的循環(huán)都不會(huì)。。。。問問自己?jiǎn)柺裁磳W(xué)這個(gè)呢?要學(xué)就學(xué)會(huì)它,要么就不學(xué),選自己喜歡的方向不可以嗎?
請(qǐng)教一個(gè)簡(jiǎn)單的Java編程問題,謝謝!!
輸入一個(gè)整數(shù),判斷這個(gè)數(shù)是不是質(zhì)數(shù)給你這段代碼,應(yīng)該可以實(shí)現(xiàn)你要的想法,import java.util.*;public class T2 { public static void main(String[] args) throws Exception { int a; Scanner sc=new Scanner(System.in); System.out.println("請(qǐng)輸入一個(gè)整數(shù):"); a=sc.nextInt(); int i; for(i=2;i<a;i++) if(a%i==0)break; if(i==a) System.out.println(a+"是質(zhì)數(shù)"); else System.out.println(a+"不是質(zhì)數(shù)"); }}
這個(gè)問題可真心長(zhǎng),
首先樓主應(yīng)該對(duì)素?cái)?shù)的定義已經(jīng)清楚了吧?其實(shí)就是一個(gè)數(shù),如果存在1和它本身以外,有數(shù)能整除它,這個(gè)數(shù)就不是素?cái)?shù).
在這里,有2個(gè)關(guān)鍵的變量,我估計(jì)解釋一下你就能看得明白這個(gè)算法了.
1.關(guān)于變量k.變量k的作用是優(yōu)化整個(gè)算法,因?yàn)楸热缫袛嘁粋€(gè)數(shù)13是不是素?cái)?shù),我們沒必要從2循環(huán)到13.只要循環(huán)到對(duì)13開根號(hào).13開根號(hào)大概是3.6多,強(qiáng)轉(zhuǎn)為int類型后是3.也就是說(shuō)只要檢查2,3是否能整除13.如果不能,13肯定是一個(gè)素?cái)?shù).因?yàn)楸热?8這個(gè)數(shù),你前面檢測(cè)到被4整除等于12,那么繼續(xù)循環(huán)超過Math.sqrt(48)的話,無(wú)非就是得到一個(gè)反過來(lái)的被12除等于4的結(jié)果.這個(gè)沒有必要.
2.關(guān)于變量j.注意點(diǎn)1:j是在最外層的循環(huán)體中定義的.這個(gè)時(shí)候剛定義完,j的值是初始的0.然后j從2開始,一直到小于等于k結(jié)束.這里是控制嘗試整除的循環(huán)次數(shù).一旦發(fā)現(xiàn)在這個(gè)范圍內(nèi)有數(shù)能整除i,那么就跳出循環(huán).
所以,對(duì)于你不理解的那個(gè)部分,首先確定一點(diǎn),程序只要執(zhí)行到break,就說(shuō)明這個(gè)數(shù)是素?cái)?shù).
例如我們這次k = 10,那么是要從j = 2到10逐一檢測(cè) i 是不是能被 j 整除.當(dāng)j = 7的時(shí)候比如可以整除了,就跳出當(dāng)前內(nèi)層循環(huán)了.這時(shí)候, j 顯然是不大于 k 的,因?yàn)橹灰侵型咎?因?yàn)閮?nèi)層循環(huán)(j = 2; j <= k; j++)的控制,只要在循環(huán)過程中跳出來(lái)的,那么j 肯定 <= k.
只有循環(huán)到j(luò) = 10依然沒有break的話,根據(jù)for循環(huán)的執(zhí)行順序,會(huì)執(zhí)行j++,然后去判斷j <= k 是否為true,為true則繼續(xù)下一次循環(huán),否則循環(huán)結(jié)束.而在這里,如果到10還沒有能夠整除的話,j是會(huì)在10的基礎(chǔ)上自增的.這時(shí)候j就=11了.
那么if ( j > k )就不成立了,則i 不會(huì)被輸出.
總結(jié)一點(diǎn):就是如果中途or最后一次循環(huán),找到能整除的數(shù)了,那么因?yàn)閎reak的關(guān)系,最后就不會(huì)執(zhí)行 j++, 所以j <= k的條件是能保證的. 換言之,如果j > k (亦即j <= k 的取反)表示沒有找到能整除的數(shù).其實(shí)j最大也就只能等于k+1.
另外,,你也可以自己修改修改,來(lái)加深理解.例如
boolean isPrime; //定義布爾變量判斷是否素?cái)?shù).是:true;否:false
for (int i = 3; i <= 100; i++) {
isPrime = true;
int k = (int) Math.sqrt(i);
for (int j = 2; j <= k; j++) {
if (i % j == 0) {
isPrime = false; //如果能夠有數(shù)整除i,那么就不是素?cái)?shù).
break;
}
}
if (isPrime) {
System.out.println(i);
}
}
這樣就沒有必要在外層循環(huán)里就定義j這個(gè)變量了.如果我上面說(shuō)的你理解還是比較困難,可以先理解用布爾變量來(lái)控制的寫法.這個(gè)理解了,用j > k 判斷的就也很容易理解了.
相關(guān)推薦:
如何申請(qǐng)植物新品種權(quán)(植物新品種的申請(qǐng)條件是什么)
怎樣辦理韓國(guó)專利申請(qǐng)(怎么申請(qǐng)韓國(guó)發(fā)明專利 有哪些流程)
如何認(rèn)定假冒注冊(cè)商標(biāo)罪(假冒注冊(cè)商標(biāo)商品罪的認(rèn)定)
如何查詢商標(biāo)(已注冊(cè)商標(biāo)查詢?cè)谀睦锟梢圆樵?
侵犯軟件著作權(quán)怎樣賠償(軟件著作權(quán)侵權(quán)賠償標(biāo)準(zhǔn))