c# - Code won't give desired output or read second input -
sorry if isn't right. first time posting here. i'm first year software student , life of me cannot seem work. know simple i'm missing oh well. tried doing using methods again no help. maybe guys me?
the problem code wont let me input after "are member (y/n)" writline statement , keeps giving me output of 50.
static void main(string[] args) { //local variable declaration// double rate1 = 10; double rate2 = 3; double maxcharge = 50; double charge; console.writeline("enter number of hours (-999 quit) : "); int hoursrented = console.read(); if (hoursrented >= 3) { charge = hoursrented * rate1; } else { charge = (3 * rate1) + (hoursrented * rate2); } if (charge > maxcharge) { charge = maxcharge; } console.writeline("are member? (y/n) : "); int memberstatus = console.read(); if (memberstatus.equals("y")) { charge = (charge * 1 / 10) - charge; } console.writeline("customer charge : {0} total charge date : ", charge); }
the problematic lines below
console.writeline("enter number of hours (-999 quit) : "); int hoursrented = console.read(); if (hoursrented >= 3) { and
console.writeline("are member? (y/n) : "); int memberstatus = console.read(); if (memberstatus.equals("y")) { when call console.read(), reads characters , returns int. seem mistakenly think parse character int.
secondly, think happens when provide multiple characters input single console.read() call. interestingly, remaining characters read in subsequent calls. when type number followed enter in first console.read only, reads first character, subsequent characters, including eoln char returned in subsequent calls, instead of prompting enter information next call.
the fix easy. use console.readline() , int.parse (or int.tryparse() variant
then corresponding code below
console.write("enter number of hours (-999 quit) : "); string hoursrentedstr = console.readline(); int hoursrented = int.parse(hoursrentedstr); if (hoursrented >= 3) { and
console.write("are member? (y/n) : "); string memberstatus = console.readline(); if (memberstatus.equals("y")) {
Comments
Post a Comment